package sounds;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;

import util.AudioClipBalanced;
/** <p>An object implementing {@link java.applet.AudioClip java.applet.AudioClip} with the data from drum-01.wav hard-coded into it.</p>
 * <p>Created with the <a href="http://stephengware.com/projects/soundtoclass">SoundToClass tool</a>, by Stephen G. Ware.</p>
 * @author Stephen G. Ware */
public class Drum01 implements AudioClipBalanced {
	private byte[] data;
	private AudioFormat format;
	private DataLine.Info lineInfo = null;
	private PlayThread playThread = null;
	private LoopThread loopThread = null;
	private static final long serialVersionUID = 22040;
	private static byte[] data0(){ return new byte[] {-1,-1,126,2,41,5,-91,7,74,10,-11,12,97,15,5,18,-99,20,3,23,-105,25,33,28,123,30,-6,32,118,35,-70,37,38,40,95,42,-71,44,18,47,47,49,116,51,-79,53,-77,55,-33,57,-5,59,-26,61,-20,63,-16,65,-76,67,-97,69,79,71,32,73,-24,74,116,76,34,78,-60,79,44,81,-77,82,48,84,112,85,-44,86,36,88,65,89,120,90,123,91,-108,92,-92,93,124,94,112,95,81,96,3,97,-51,97,-126,98,19,99,-90,99,64,100,-105,100,18,101,81,101,-83,101,-9,101,18,102,70,102,103,102,93,102,106,102,97,102,54,102,25,102,-20,101,-98,101,89,101,11,101,-106,100,51,100,-87,99,46,99,-88,98,-3,97,104,97,-68,96,2,96,64,95,-120,94,-95,93,-41,92,-12,91,4,91,22,90,21,89,26,88,27,87,2,86,-8,84,-33,83,-65,82,-100,81,122,80,67,79,29,78,-31,76,-82,75,110,74,48,73,-16,71,-84,70,103,69,32,68,-41,66,-114,65,65,64,-9,62,-84,61,95,60,19,59,-52,57,124,56,62,55,-20,53,-84,52,103,51,37,50,-29,48,-86,47,109,46,53,45,2,44,-42,42,-99,41,-124,40,85,39,50,38,34,37,-2,35,-1,34,-30,33,-37,32,-34,31,-37,30,-39,29,-10,28,-3,27,19,27,56,26,90,25,119,24,-72,23,-27,22,47,22,105,21,-88,20,5,20,81,19,-93,18,17,18,116,17,-45,16,90,16,-55,15,62,15,-44,14,88,14,-6,13,-123,13,26,13,-54,12,107,12,8,12,-47,11,126,11,42,11,7,11,-70,10,126,10,95,10,42,10,21,10,-25,9,-74,9,-77,9,-116,9,103,9,110,9,80,9,53,9,70,9,43,9,28,9,47,9,33,9,16,9,45,9,31,9,64,9,49,9,44,9,72,9,66,9,54,9,89,9,76,9,69,9,95,9,90,9,67,9,103,9,82,9,106,9,92,9,61,9,86,9,56,9,25,9,39,9,1,9,-38,8,-35,8,-83,8,126,8,116,8,59,8,46,8,-24,7,-89,7,-122,7,61,7,-26,6,-64,6,95,6,2,6,-58,5,95,5,-20,4,-87,4,42,4,-38,3,86,3,-52,2,109,2,-41,1,62,1,-51,0,39,0,-126,-1,-2,-2,75,-2,-107,-3,2,-3,62,-4,-93,-5,-40,-6,7,-6,91,-7,-126,-8,-97,-9,-18,-10,-6,-11,27,-11,72,-12,91,-13,98,-14,-116,-15,-113,-16,-117,-17,-83,-18,-96,-19,-66,-20,-88,-21,-97,-22,-91,-23,-106,-24,122,-25,-127,-26,103,-27,70,-28,76,-29,39,-30,10,-31,3,-32,-29,-34,-37,-35,-70,-36,-106,-37,-114,-38,109,-39,74,-40,68,-41,38,-42,4,-43,5,-44,-26,-46,-49,-47,-49,-48,-70,-49,-64,-50,-82,-51,-90,-52,-81,-53,-85,-54,-85,-55,-66,-56,-58,-57,-45,-58,-17,-59,9,-59,29,-60,80,-61,110,-62,-86,-63,-44,-64,14,-64,80,-65,-108,-66,-37,-67,49,-67,-119,-68,-31,-69,78,-69,-74,-70,39,-70,-91,-71,37,-71,-86,-72,64,-72,-44,-73,120,-73,28,-73,-52,-74,-124,-74,64,-74,10,-74,-39,-75,-83,-75,-110,-75,116,-75,102,-75,98,-75,93,-75,106,-75,120,-75,-110,-75,-72,-75,-35,-75,18,-74,80,-74,-115,-74,-35,-74,49,-73,-120,-73,-19,-73,94,-72,-53,-72,71,-71,-59,-71,81,-70,-20,-70,120,-69,33,-68,-52,-68,113,-67,46,-66,-17,-66,-89,-65,120,-64,77,-63,24,-62,-4,-62,-49,-61,-62,-60,-77,-59,-100,-58,-104,-57,-95,-56,-110,-55,-96,-54,-72,-53,-77,-52,-45,-51,-15,-50,-3,-49,38,-47,79,-46,103,-45,-109,-44,-80,-43,-25,-42,28,-40,66,-39,120,-38,-66,-37,-35,-36,32,-34,101,-33,-120,-32,-48,-31,20,-29,58,-28,127,-27,-91,-26,-21,-25,47,-23,82,-22,-107,-21,-41,-20,-9,-19,53,-17,116,-16,-117,-15,-57,-14,-4,-13,16,-11,65,-10,75,-9,124,-8,-96,-7,-88,-6,-57,-5,-23,-4,-31,-3,-10,-2,15,0,-10,0,7,2,10,3,-19,3,-25,4,-65,5,-76,6,-91,7,110,8,81,9,57,10,-20,10,-57,11,-100,12,64,13,14,14,-52,14,105,15,31,16,-84,16,93,17,4,18,-124,18,32,19,-68,19,41,20,-74,20,67,21,-98,21,31,22,-103,22,-26,22,86,23,-61,23,1,24,98,24,-102,24,-16,24,69,25,109,25,-72,25,-2,25,25,26,89,26,-113,26,-92,26,-46,26,1,27,8,27,46,27,46,27,79,27,106,27,102,27,120,27,-112,27,-128,27,-116,27,-97,27,-125,27,-111,27,-108,27,126,27,124,27,102,27,96,27,101,27,67,27,65,27,66,27,26,27,31,27,17,27,-6,26,-18,26,-16,26,-53,26,-52,26,-85,26,-85,26,-88,26,-115,26,-114,26,-114,26,121,26,124,26,-127,26,112,26,123,26,-128,26}; }
	private static byte[] data1(){ return new byte[] {123,26,-125,26,-105,26,-110,26,-90,26,-87,26,-64,26,-38,26,-25,26,5,27,36,27,63,27,93,27,-114,27,-90,27,-41,27,7,28,47,28,100,28,-108,28,-51,28,14,29,66,29,-118,29,-49,29,15,30,94,30,-89,30,-7,30,69,31,-96,31,-17,31,77,32,-92,32,4,33,99,33,-57,33,41,34,-107,34,-9,34,103,35,-47,35,63,36,-79,36,28,37,-106,37,5,38,125,38,-15,38,103,39,-32,39,90,40,-53,40,78,41,-64,41,59,42,-76,42,49,43,-98,43,35,44,-109,44,7,45,-124,45,-13,45,110,46,-35,46,72,47,-66,47,39,48,-119,48,0,49,92,49,-68,49,38,50,125,50,-45,50,54,51,-127,51,-29,51,36,52,107,52,-70,52,-10,52,43,53,114,53,-97,53,-58,53,1,54,30,54,56,54,99,54,113,54,-107,54,-106,54,-105,54,-91,54,-102,54,-124,54,-121,54,101,54,65,54,47,54,-3,53,-61,53,-96,53,91,53,44,53,-40,52,124,52,62,52,-49,51,107,51,12,51,-106,50,16,50,-86,49,22,49,-123,48,0,48,101,47,-78,46,39,46,108,45,-51,44,11,44,59,43,-114,42,-79,41,-40,40,13,40,43,39,48,38,100,37,95,36,100,35,118,34,111,33,119,32,100,31,64,30,67,29,26,28,-21,26,-32,25,-92,24,112,23,77,22,17,21,-60,19,-96,18,81,17,33,16,-51,14,117,13,59,12,-31,10,124,9,65,8,-40,6,116,5,46,4,-62,2,90,1,11,0,-94,-2,81,-3,-25,-5,114,-6,41,-7,-75,-9,72,-10,-7,-12,-116,-13,29,-14,-46,-16,102,-17,-6,-19,-73,-20,74,-21,11,-22,-92,-24,70,-25,8,-26,-85,-28,86,-29,29,-30,-49,-32,124,-33,85,-34,11,-35,-55,-37,-86,-38,108,-39,59,-40,37,-41,-9,-43,-15,-44,-56,-45,-77,-46,-80,-47,-92,-48,-109,-49,-84,-50,-90,-51,-79,-52,-46,-53,-23,-54,-3,-55,58,-55,90,-56,-95,-57,-45,-58,13,-58,102,-59,-85,-60,-4,-61,102,-61,-62,-62,42,-62,-90,-63,29,-63,-108,-64,45,-64,-80,-65,90,-65,-20,-66,-111,-66,67,-66,-9,-67,-88,-67,122,-67,57,-67,9,-67,-22,-68,-61,-68,-86,-68,-101,-68,-111,-68,-113,-68,-106,-68,-110,-68,-75,-68,-66,-68,-28,-68,6,-67,52,-67,95,-67,-95,-67,-37,-67,31,-66,109,-66,-67,-66,19,-65,113,-65,-43,-65,58,-64,-84,-64,26,-63,-106,-63,16,-62,-108,-62,25,-61,-90,-61,56,-60,-56,-60,103,-59,-2,-59,-89,-58,66,-57,-14,-57,-105,-56,78,-55,-4,-55,-78,-54,112,-53,38,-52,-26,-52,-83,-51,105,-50,50,-49,-1,-49,-64,-48,-110,-47,87,-46,42,-45,-1,-45,-57,-44,-95,-43,119,-42,66,-41,33,-40,-12,-40,-55,-39,-100,-38,-127,-37,69,-36,42,-35,-19,-35,-48,-34,-90,-33,117,-32,74,-31,42,-30,-21,-30,-56,-29,-100,-28,97,-27,52,-26,9,-25,-58,-25,-104,-24,103,-23,33,-22,-22,-22,-95,-21,104,-20,46,-19,-33,-19,-98,-18,97,-17,4,-16,-60,-16,122,-15,29,-14,-48,-14,-127,-13,28,-12,-56,-12,88,-11,6,-10,-90,-10,54,-9,-46,-9,117,-8,-12,-8,-116,-7,41,-6,-101,-6,51,-5,-65,-5,49,-4,-69,-4,40,-3,-85,-3,50,-2,-111,-2,19,-1,-115,-1,-21,-1,94,0,-39,0,41,1,-99,1,10,2,89,2,-61,2,13,3,117,3,-40,3,29,4,127,4,-36,4,30,5,120,5,-44,5,13,6,102,6,-69,6,-12,6,68,7,125,7,-55,7,32,8,75,8,-98,8,-21,8,26,9,103,9,-79,9,-29,9,38,10,123,10,-99,10,-18,10,54,11,96,11,-85,11,-42,11,31,12,106,12,-106,12,-34,12,44,13,84,13,-91,13,-22,13,30,14,101,14,-74,14,-28,14,51,15,99,15,-76,15,3,16,56,16,-118,16,-40,16,22,17,98,17,-66,17,-15,17,78,18,-99,18,-29,18,52,19,121,19,-45,19,42,20,116,20,-55,20,46,21,112,21,-46,21,48,22,123,22,-36,22,62,23,-116,23,-19,23,63,24,-94,24,8,25,90,25,-64,25,38,26,123,26,-29,26,73,27,-96,27,9,28,109,28,-53,28,44,29,-102,29,-18,29,89,30,-80,30,25,31,126,31,-39,31,62,32,-93,32,-4,32,95,33,-59,33,23,34,127,34,-40,34,50,35,-112,35,-32,35,65,36,-106,36,-23,36,65,37,-108,37,-30,37,53,38,-127,38,-50,38,24,39,96,39,-88,39,-23,39,43,40,107,40,-87,40,-27,40,26,41,85,41,-125,41,-71,41,-30,41,16,42,57,42,90,42,-124,42,-101,42,-64,42,-46,42,-20,42,-1,42,14,43,23,43,38,43,38,43,42,43,41,43,36,43,25,43,17,43,-1,42,-24,42,-39,42,-72,42,-93,42,123,42,85,42,49,42,1,42,-53,41,-96,41}; }
	private static byte[] data2(){ return new byte[] {99,41,36,41,-20,40,-92,40,91,40,21,40,-57,39,123,39,36,39,-60,38,115,38,12,38,-90,37,70,37,-36,36,98,36,3,36,-124,35,10,35,-104,34,24,34,-95,33,26,33,-117,32,14,32,126,31,-29,30,101,30,-58,29,41,29,-97,28,-6,27,85,27,-59,26,25,26,-121,25,-43,24,38,24,-114,23,-43,22,38,22,-128,21,-52,20,16,20,108,19,-79,18,-16,17,77,17,-119,16,-51,15,29,15,99,14,-79,13,-10,12,41,12,-124,11,-66,10,-10,9,80,9,-121,8,-62,7,26,7,84,6,-113,5,-23,4,33,4,127,3,-71,2,-7,1,87,1,-111,0,-38,-1,50,-1,123,-2,-67,-3,34,-3,102,-4,-75,-5,23,-5,102,-6,-45,-7,28,-7,118,-8,-33,-9,57,-9,-113,-10,6,-10,95,-11,-63,-12,58,-12,-98,-13,3,-13,-123,-14,-17,-15,120,-15,-29,-16,88,-16,-29,-17,90,-17,-43,-18,103,-18,-23,-19,102,-19,6,-19,-118,-20,21,-20,-72,-21,71,-21,-14,-22,-125,-22,29,-22,-52,-23,105,-23,6,-23,-64,-24,102,-24,10,-24,-50,-25,118,-25,41,-25,-18,-26,-93,-26,91,-26,39,-26,-24,-27,-72,-27,120,-27,65,-27,18,-27,-27,-28,-88,-28,-117,-28,93,-28,41,-28,21,-28,-23,-29,-63,-29,-82,-29,-119,-29,124,-29,89,-29,61,-29,49,-29,23,-29,0,-29,-7,-30,-30,-30,-46,-30,-51,-30,-65,-30,-82,-30,-78,-30,-91,-30,-89,-30,-95,-30,-108,-30,-96,-30,-106,-30,-107,-30,-101,-30,-103,-30,-104,-30,-93,-30,-94,-30,-90,-30,-83,-30,-74,-30,-68,-30,-58,-30,-58,-30,-41,-30,-38,-30,-29,-30,-18,-30,-8,-30,-3,-30,14,-29,18,-29,32,-29,41,-29,54,-29,59,-29,78,-29,82,-29,98,-29,108,-29,115,-29,-125,-29,-120,-29,-104,-29,-99,-29,-83,-29,-77,-29,-65,-29,-56,-29,-44,-29,-38,-29,-23,-29,-22,-29,-5,-29,-1,-29,10,-28,18,-28,28,-28,35,-28,42,-28,57,-28,57,-28,70,-28,79,-28,83,-28,94,-28,96,-28,108,-28,117,-28,122,-28,-126,-28,-110,-28,-113,-28,-96,-28,-87,-28,-82,-28,-72,-28,-55,-28,-55,-28,-38,-28,-39,-28,-20,-28,-6,-28,0,-27,15,-27,35,-27,38,-27,60,-27,80,-27,86,-27,108,-27,-123,-27,-116,-27,-90,-27,-62,-27,-55,-27,-22,-27,-13,-27,21,-26,51,-26,70,-26,101,-26,-114,-26,-99,-26,-57,-26,-15,-26,6,-25,52,-25,96,-25,124,-25,-81,-25,-54,-25,2,-24,54,-24,91,-24,-108,-24,-46,-24,-8,-24,58,-23,123,-23,-87,-23,-16,-23,55,-22,108,-22,-74,-22,-16,-22,62,-21,-108,-21,-49,-21,39,-20,-127,-20,-61,-20,36,-19,127,-19,-49,-19,45,-18,-103,-18,-26,-18,83,-17,-90,-17,23,-16,-120,-16,-30,-16,91,-15,-48,-15,52,-14,-81,-14,45,-13,-105,-13,23,-12,-97,-12,8,-11,-106,-11,4,-10,-110,-10,34,-9,-107,-9,45,-8,-68,-8,61,-7,-48,-7,109,-6,-19,-6,-120,-5,40,-4,-82,-4,77,-3,-13,-3,119,-2,35,-1,-85,-1,86,0,-6,0,-114,1,52,2,-27,2,113,3,36,4,-52,4,102,5,17,6,-61,6,86,7,12,8,-98,8,84,9,0,10,-102,10,77,11,-8,11,-106,12,68,13,-15,13,-113,14,56,15,-24,15,-126,16,41,17,-57,17,107,18,26,19,-86,19,87,20,-9,20,-113,21,46,22,-45,22,96,23,0,24,-98,24,38,25,-60,25,70,26,-30,26,114,27,-9,27,-122,28,20,29,-111,29,25,30,-93,30,20,31,-99,31,22,32,-118,32,1,33,122,33,-32,33,86,34,-76,34,37,35,-118,35,-25,35,76,36,-89,36,-1,36,84,37,-83,37,-9,37,69,38,-109,38,-46,38,25,39,84,39,-109,39,-51,39,0,40,51,40,102,40,-115,40,-75,40,-34,40,-7,40,28,41,53,41,73,41,96,41,108,41,122,41,-123,41,-121,41,-116,41,-118,41,-124,41,126,41,112,41,100,41,77,41,61,41,30,41,9,41,-28,40,-59,40,-101,40,119,40,72,40,25,40,-26,39,-76,39,115,39,66,39,-4,38,-67,38,121,38,52,38,-29,37,-96,37,74,37,2,37,-90,36,82,36,-8,35,-96,35,57,35,-29,34,123,34,18,34,-76,33,69,33,-38,32,110,32,2,32,-110,31,34,31,-92,30,58,30,-69,29,62,29,-51,28,74,28,-55,27,83,27,-52,26,73,26,-52,25,70,25,-54,24,63,24,-76,23,53,23,-87,22,24,22,-101,21,10,21,122,20,-8,19,104,19,-45,18,84,18,-64,17,63,17,-84,16,21,16,-106,15,2,15,108,14,-20,13,88,13,-64,12,71,12,-85,11,30,11,-102,10,10,10,117,9,-7,8,101,8,-20,7,88,7,-55,6,78,6,-64,5,48,5,-69,4,42,4,-95,3,41,3,-96,2,22,2,-93,1,28,1,-87,0,38,0,-99,-1,53,-1,-84,-2}; }
	private static byte[] data3(){ return new byte[] {47,-2,-63,-3,68,-3,-60,-4,94,-4,-33,-5,103,-5,1,-5,-118,-6,40,-6,-80,-7,62,-7,-35,-8,110,-8,-8,-9,-95,-9,49,-9,-60,-10,108,-10,4,-10,-109,-11,73,-11,-36,-12,-116,-12,43,-12,-64,-13,123,-13,21,-13,-72,-14,108,-14,17,-14,-77,-15,109,-15,23,-15,-70,-16,123,-16,36,-16,-30,-17,-111,-17,61,-17,3,-17,-81,-18,101,-18,38,-18,-35,-19,-109,-19,89,-19,19,-19,-55,-20,-105,-20,80,-20,15,-20,-38,-21,-101,-21,106,-21,43,-21,-19,-22,-64,-22,-125,-22,72,-22,31,-22,-29,-23,-80,-23,-126,-23,82,-23,25,-23,-10,-24,-62,-24,-97,-24,110,-24,62,-24,28,-24,-15,-25,-65,-25,-90,-25,119,-25,78,-25,52,-25,6,-25,-23,-26,-61,-26,-88,-26,-120,-26,106,-26,68,-26,50,-26,11,-26,-13,-27,-37,-27,-67,-27,-90,-27,-117,-27,124,-27,88,-27,81,-27,53,-27,39,-27,20,-27,-3,-28,-13,-28,-31,-28,-48,-28,-58,-28,-73,-28,-85,-28,-95,-28,-103,-28,-117,-28,-118,-28,126,-28,123,-28,117,-28,116,-28,109,-28,115,-28,106,-28,113,-28,112,-28,115,-28,120,-28,124,-28,-125,-28,-119,-28,-109,-28,-99,-28,-90,-28,-76,-28,-67,-28,-49,-28,-35,-28,-19,-28,0,-27,20,-27,39,-27,59,-27,88,-27,104,-27,-121,-27,-95,-27,-69,-27,-39,-27,-12,-27,20,-26,59,-26,83,-26,-128,-26,-95,-26,-57,-26,-18,-26,26,-25,64,-25,109,-25,-97,-25,-61,-25,-5,-25,30,-24,90,-24,-115,-24,-68,-24,-11,-24,48,-23,97,-23,-97,-23,-34,-23,18,-22,83,-22,-103,-22,-52,-22,24,-21,89,-21,-104,-21,-33,-21,29,-20,106,-20,-73,-20,-10,-20,72,-19,-105,-19,-36,-19,47,-18,-126,-18,-51,-18,28,-17,126,-17,-66,-17,30,-16,102,-16,-62,-16,35,-15,106,-15,-47,-15,41,-14,-128,-14,-35,-14,66,-13,-107,-13,-9,-13,95,-12,-80,-12,26,-11,107,-11,-40,-11,61,-10,-105,-10,-2,-10,107,-9,-62,-9,46,-8,-100,-8,-13,-8,97,-7,-48,-7,40,-6,-104,-6,-13,-6,96,-5,-46,-5,43,-4,-101,-4,12,-3,102,-3,-40,-3,70,-2,-94,-2,20,-1,-128,-1,-31,-1,75,0,-85,0,24,1,-121,1,-28,1,79,2,-62,2,24,3,-119,3,-12,3,77,4,-69,4,38,5,125,5,-21,5,80,6,-85,6,19,7,101,7,-46,7,51,8,-115,8,-21,8,89,9,-96,9,12,10,104,10,-70,10,26,11,120,11,-56,11,32,12,113,12,-57,12,38,13,108,13,-61,13,29,14,96,14,-73,14,10,15,75,15,-97,15,-20,15,47,16,120,16,-69,16,0,17,79,17,-122,17,-50,17,22,18,74,18,-115,18,-45,18,1,19,69,19,127,19,-78,19,-22,19,26,20,81,20,-119,20,-78,20,-25,20,25,21,66,21,109,21,-94,21,-65,21,-18,21,24,22,54,22,94,22,-122,22,-98,22,-59,22,-36,22,-4,22,30,23,48,23,81,23,105,23,124,23,-107,23,-86,23,-68,23,-52,23,-27,23,-22,23,-1,23,5,24,22,24,30,24,42,24,45,24,60,24,58,24,67,24,70,24,71,24,71,24,76,24,68,24,72,24,62,24,62,24,55,24,48,24,40,24,32,24,23,24,10,24,0,24,-15,23,-27,23,-44,23,-58,23,-77,23,-91,23,-113,23,123,23,106,23,79,23,61,23,35,23,12,23,-16,22,-38,22,-68,22,-95,22,-125,22,105,22,67,22,46,22,6,22,-18,21,-58,21,-91,21,-123,21,94,21,55,21,25,21,-21,20,-55,20,-98,20,122,20,74,20,39,20,-6,19,-44,19,-89,19,118,19,78,19,32,19,-23,18,-58,18,-112,18,92,18,51,18,-4,17,-57,17,-101,17,101,17,55,17,0,17,-60,16,-103,16,93,16,32,16,-11,15,-78,15,123,15,70,15,11,15,-57,14,-100,14,82,14,43,14,-33,13,-92,13,108,13,44,13,-30,12,-74,12,103,12,41,12,-18,11,-86,11,98,11,40,11,-28,10,-106,10,98,10,22,10,-38,9,-107,9,67,9,14,9,-66,8,113,8,56,8,-24,7,-101,7,93,7,15,7,-66,6,-126,6,47,6,-12,5,-97,5,81,5,15,5,-69,4,111,4,37,4,-36,3,-128,3,67,3,-19,2,-103,2,88,2,0,2,-64,1,104,1,21,1,-49,0,123,0,33,0,-30,-1,-122,-1,51,-1,-19,-2,-108,-2,64,-2,-8,-3,-95,-3,92,-3,5,-3,-84,-4,103,-4,14,-4,-71,-5,112,-5,28,-5,-64,-6,126,-6,36,-6,-50,-7,-120,-7,48,-7,-21,-8,-109,-8,62,-8,-8,-9,-95,-9,77,-9,5,-9,-77,-10,93,-10,23,-10,-60,-11,112,-11,44,-11,-40,-12,-120,-12,65,-12,-12,-13,-83,-13,94,-13,14,-13,-51,-14,125,-14,48,-14,-18,-15,-95,-15,87,-15,20,-15,-50,-16,125,-16,71,-16,-8,-17,-64,-17,118,-17,49,-17}; }
	private static byte[] data4(){ return new byte[] {-12,-18,-76,-18,106,-18,55,-18,-14,-19,-79,-19,124,-19,58,-19,0,-19,-57,-20,-112,-20,89,-20,33,-20,-23,-21,-73,-21,-127,-21,75,-21,31,-21,-22,-22,-71,-22,-113,-22,93,-22,50,-22,7,-22,-34,-23,-73,-23,-114,-23,102,-23,67,-23,32,-23,-8,-24,-35,-24,-71,-24,-102,-24,127,-24,98,-24,68,-24,48,-24,18,-24,0,-24,-25,-25,-41,-25,-63,-25,-77,-25,-97,-25,-106,-25,-125,-25,125,-25,111,-25,104,-25,98,-25,89,-25,87,-25,86,-25,80,-25,83,-25,84,-25,84,-25,95,-25,94,-25,104,-25,117,-25,119,-25,-116,-25,-108,-25,-93,-25,-75,-25,-57,-25,-39,-25,-17,-25,0,-24,28,-24,52,-24,78,-24,105,-24,-116,-24,-93,-24,-56,-24,-21,-24,11,-23,47,-23,91,-23,123,-23,-89,-23,-51,-23,-9,-23,45,-22,80,-22,-123,-22,-71,-22,-30,-22,31,-21,79,-21,-123,-21,-69,-21,-7,-21,46,-20,102,-20,-83,-20,-34,-20,34,-19,90,-19,-99,-19,-27,-19,31,-18,104,-18,-82,-18,-16,-18,56,-17,-121,-17,-57,-17,20,-16,101,-16,-88,-16,-8,-16,63,-15,-112,-15,-26,-15,44,-14,-126,-14,-40,-14,35,-13,121,-13,-43,-13,29,-12,121,-12,-44,-12,33,-11,126,-11,-53,-11,41,-10,-122,-10,-39,-10,52,-9,-104,-9,-27,-9,72,-8,-88,-8,-6,-8,93,-7,-66,-7,18,-6,115,-6,-57,-6,42,-5,-113,-5,-31,-5,70,-4,-86,-4,-3,-4,99,-3,-59,-3,28,-2,126,-2,-28,-2,56,-1,-102,-1,-13,-1,80,0,-69,0,9,1,113,1,-48,1,41,2,-125,2,-16,2,57,3,-95,3,0,4,81,4,-76,4,17,5,100,5,-62,5,17,6,114,6,-53,6,29,7,119,7,-43,7,32,8,124,8,-45,8,34,9,116,9,-43,9,18,10,116,10,-79,10,12,11,93,11,-93,11,-13,11,71,12,-121,12,-40,12,37,13,102,13,-80,13,-2,13,59,14,-127,14,-62,14,1,15,81,15,127,15,-51,15,6,16,67,16,126,16,-63,16,-15,16,47,17,105,17,-101,17,-48,17,1,18,53,18,108,18,-108,18,-55,18,-8,18,31,19,79,19,123,19,-98,19,-53,19,-16,19,20,20,55,20,94,20,123,20,-102,20,-71,20,-46,20,-10,20,10,21,37,21,65,21,82,21,105,21,-128,21,-113,21,-94,21,-77,21,-65,21,-51,21,-41,21,-29,21,-18,21,-14,21,-4,21,0,22,5,22,6,22,12,22,5,22,10,22,5,22,1,22,-1,21,-13,21,-17,21,-25,21,-37,21,-47,21,-60,21,-74,21,-88,21,-104,21,-122,21,115,21,96,21,75,21,54,21,30,21,7,21,-20,20,-45,20,-73,20,-103,20,125,20,95,20,59,20,32,20,-7,19,-40,19,-75,19,-114,19,106,19,65,19,29,19,-12,18,-54,18,-98,18,118,18,71,18,26,18,-18,17,-65,17,-116,17,96,17,46,17,-8,16,-52,16,-108,16,104,16,46,16,-8,15,-57,15,-117,15,87,15,28,15,-22,14,-90,14,120,14,56,14,-6,13,-57,13,-123,13,84,13,14,13,-43,12,-106,12,92,12,21,12,-32,11,-99,11,89,11,33,11,-33,10,-104,10,97,10,27,10,-30,9,-98,9,86,9,30,9,-41,8,-112,8,89,8,14,8,-55,7,-112,7,70,7,3,7,-61,6,-128,6,53,6,-2,5,-76,5,122,5,51,5,-23,4,-78,4,104,4,33,4,-26,3,-95,3,85,3,33,3,-44,2,-112,2,87,2,13,2,-40,1,-114,1,74,1,15,1,-53,0,-125,0,77,0,7,0,-65,-1,-115,-1,66,-1,3,-1,-56,-2,-121,-2,80,-2,12,-2,-54,-3,-108,-3,82,-3,15,-3,-37,-4,-103,-4,89,-4,36,-4,-26,-5,-94,-5,115,-5,49,-5,3,-5,-63,-6,-123,-6,82,-6,23,-6,-41,-7,-84,-7,107,-7,51,-7,3,-7,-58,-8,-111,-8,94,-8,41,-8,-6,-9,-61,-9,-118,-9,96,-9,38,-9,-12,-10,-59,-10,-107,-10,90,-10,53,-10,1,-10,-52,-11,-90,-11,113,-11,67,-11,25,-11,-19,-12,-62,-12,-105,-12,102,-12,65,-12,23,-12,-28,-13,-58,-13,-102,-13,105,-13,79,-13,31,-13,-7,-14,-41,-14,-79,-14,-114,-14,109,-14,62,-14,42,-14,-4,-15,-33,-15,-67,-15,-99,-15,122,-15,94,-15,63,-15,28,-15,5,-15,-27,-16,-50,-16,-82,-16,-107,-16,121,-16,99,-16,67,-16,51,-16,21,-16,1,-16,-23,-17,-42,-17,-66,-17,-85,-17,-102,-17,-123,-17,118,-17,97,-17,83,-17,66,-17,50,-17,37,-17,23,-17,8,-17,-2,-18,-14,-18,-25,-18,-35,-18,-44,-18,-53,-18,-60,-18,-66,-18,-74,-18,-76,-18,-85,-18,-83,-18,-92,-18,-90,-18,-92,-18,-94,-18,-91,-18,-93,-18,-89,-18,-86,-18,-82,-18,-80,-18,-73,-18,-68,-18,-59,-18,-54,-18,-42,-18,-35,-18,-24,-18,-12,-18,-1,-18,13,-17,26,-17,42,-17,55,-17,75,-17,85,-17}; }
	private static byte[] data5(){ return new byte[] {109,-17,127,-17,-112,-17,-89,-17,-66,-17,-47,-17,-23,-17,6,-16,22,-16,56,-16,80,-16,105,-16,-119,-16,-98,-16,-61,-16,-32,-16,-3,-16,33,-15,66,-15,99,-15,-124,-15,-81,-15,-54,-15,-10,-15,28,-14,64,-14,105,-14,-108,-14,-70,-14,-29,-14,12,-13,55,-13,105,-13,-113,-13,-64,-13,-16,-13,27,-12,76,-12,-126,-12,-84,-12,-32,-12,23,-11,66,-11,123,-11,-89,-11,-32,-11,26,-10,70,-10,-125,-10,-66,-10,-21,-10,45,-9,100,-9,-104,-9,-40,-9,16,-8,75,-8,-126,-8,-67,-8,-9,-8,60,-7,111,-7,-82,-7,-12,-7,37,-6,108,-6,-85,-6,-29,-6,39,-5,104,-5,-92,-5,-31,-5,32,-4,93,-4,-86,-4,-38,-4,37,-3,101,-3,-93,-3,-30,-3,46,-2,96,-2,-85,-2,-19,-2,40,-1,107,-1,-89,-1,-25,-1,52,0,99,0,-78,0,-17,0,45,1,110,1,-76,1,-20,1,47,2,116,2,-84,2,-19,2,51,3,103,3,-86,3,-30,3,33,4,102,4,-106,4,-36,4,26,5,78,5,-114,5,-51,5,-1,5,64,6,122,6,-83,6,-20,6,23,7,91,7,-115,7,-61,7,-6,7,51,8,99,8,-104,8,-46,8,-2,8,50,9,107,9,-112,9,-54,9,-16,9,35,10,87,10,124,10,-83,10,-33,10,2,11,50,11,95,11,-125,11,-81,11,-37,11,-6,11,38,12,71,12,109,12,-105,12,-78,12,-36,12,-4,12,29,13,60,13,98,13,121,13,-99,13,-70,13,-44,13,-15,13,15,14,36,14,65,14,85,14,110,14,-118,14,-103,14,-77,14,-56,14,-38,14,-20,14,5,15,13,15,36,15,53,15,61,15,85,15,86,15,109,15,116,15,-128,15,-116,15,-109,15,-96,15,-94,15,-79,15,-79,15,-70,15,-64,15,-64,15,-54,15,-58,15,-51,15,-53,15,-50,15,-51,15,-52,15,-52,15,-57,15,-56,15,-65,15,-64,15,-73,15,-76,15,-84,15,-89,15,-100,15,-104,15,-118,15,-123,15,118,15,110,15,99,15,81,15,76,15,55,15,45,15,29,15,12,15,-3,14,-20,14,-37,14,-53,14,-75,14,-91,14,-113,14,125,14,99,14,84,14,56,14,36,14,11,14,-9,13,-40,13,-59,13,-88,13,-110,13,118,13,88,13,65,13,33,13,4,13,-24,12,-53,12,-91,12,-111,12,106,12,73,12,47,12,6,12,-15,11,-59,11,-92,11,-123,11,92,11,58,11,22,11,-16,10,-56,10,-91,10,125,10,83,10,47,10,8,10,-31,9,-73,9,-117,9,100,9,59,9,7,9,-25,8,-75,8,-121,8,95,8,47,8,-2,7,-42,7,-90,7,112,7,75,7,21,7,-18,6,-73,6,-123,6,88,6,38,6,-19,5,-62,5,-114,5,82,5,43,5,-17,4,-72,4,-116,4,81,4,36,4,-21,3,-81,3,-126,3,70,3,12,3,-36,2,-96,2,101,2,50,2,-6,1,-71,1,-116,1,75,1,28,1,-36,0,-95,0,109,0,47,0,-13,-1,-69,-1,-124,-1,62,-1,15,-1,-48,-2,-114,-2,95,-2,28,-2,-22,-3,-85,-3,107,-3,55,-3,-7,-4,-72,-4,-121,-4,68,-4,9,-4,-47,-5,-105,-5,83,-5,36,-5,-30,-6,-80,-6,115,-6,51,-6,0,-6,-59,-7,-125,-7,86,-7,22,-7,-39,-8,-86,-8,107,-8,49,-8,2,-8,-62,-9,-115,-9,90,-9,33,-9,-13,-10,-73,-10,-125,-10,80,-10,31,-10,-30,-11,-69,-11,-128,-11,80,-11,34,-11,-18,-12,-66,-12,-113,-12,99,-12,54,-12,8,-12,-40,-13,-80,-13,-125,-13,86,-13,48,-13,6,-13,-39,-14,-71,-14,-116,-14,103,-14,70,-14,30,-14,-1,-15,-36,-15,-75,-15,-100,-15,119,-15,88,-15,61,-15,30,-15,1,-15,-24,-16,-50,-16,-79,-16,-98,-16,-124,-16,113,-16,92,-16,67,-16,55,-16,33,-16,15,-16,4,-16,-16,-17,-26,-17,-41,-17,-49,-17,-65,-17,-68,-17,-80,-17,-87,-17,-90,-17,-99,-17,-98,-17,-104,-17,-103,-17,-106,-17,-103,-17,-103,-17,-98,-17,-95,-17,-90,-17,-82,-17,-77,-17,-66,-17,-57,-17,-49,-17,-33,-17,-24,-17,-7,-17,7,-16,22,-16,42,-16,58,-16,78,-16,100,-16,118,-16,-111,-16,-91,-16,-64,-16,-41,-16,-15,-16,13,-15,44,-15,68,-15,103,-15,-123,-15,-92,-15,-58,-15,-22,-15,8,-14,49,-14,83,-14,121,-14,-100,-14,-58,-14,-23,-14,26,-13,57,-13,106,-13,-108,-13,-67,-13,-21,-13,26,-12,67,-12,116,-12,-92,-12,-48,-12,2,-11,52,-11,99,-11,-109,-11,-59,-11,-11,-11,47,-10,91,-10,-109,-10,-55,-10,-8,-10,50,-9,105,-9,-104,-9,-44,-9,11,-8,61,-8,119,-8,-88,-8,-30,-8,30,-7,80,-7,-120,-7,-56,-7,-9,-7,50,-6,114,-6,-98,-6,-32,-6,24,-5,75,-5,-119,-5,-71,-5,-10,-5,50,-4,99,-4,-96,-4,-36,-4,12,-3,73,-3,-124,-3,-76,-3,-14,-3,41,-2,94,-2}; }
	private static byte[] data6(){ return new byte[] {-109,-2,-54,-2,-5,-2,64,-1,100,-1,-90,-1,-38,-1,9,0,68,0,120,0,-87,0,-35,0,24,1,64,1,121,1,-93,1,-38,1,13,2,57,2,107,2,-95,2,-54,2,-7,2,49,3,83,3,-118,3,-75,3,-32,3,13,4,62,4,100,4,-114,4,-73,4,-32,4,17,5,48,5,94,5,-121,5,-85,5,-46,5,-1,5,27,6,70,6,108,6,-115,6,-80,6,-47,6,-13,6,28,7,51,7,93,7,122,7,-101,7,-73,7,-34,7,-13,7,23,8,53,8,78,8,107,8,-123,8,-98,8,-62,8,-48,8,-12,8,9,9,34,9,58,9,85,9,106,9,126,9,-98,9,-89,9,-57,9,-47,9,-20,9,1,10,16,10,37,10,59,10,73,10,90,10,117,10,119,10,-108,10,-97,10,-83,10,-64,10,-50,10,-39,10,-21,10,-13,10,2,11,18,11,26,11,38,11,55,11,58,11,75,11,83,11,93,11,101,11,113,11,119,11,-127,11,-123,11,-112,11,-106,11,-100,11,-92,11,-87,11,-82,11,-76,11,-72,11,-66,11,-64,11,-59,11,-56,11,-54,11,-53,11,-48,11,-48,11,-46,11,-47,11,-44,11,-47,11,-43,11,-49,11,-45,11,-53,11,-48,11,-56,11,-55,11,-60,11,-63,11,-70,11,-68,11,-80,11,-82,11,-87,11,-97,11,-99,11,-111,11,-114,11,-127,11,125,11,113,11,103,11,96,11,82,11,77,11,60,11,52,11,38,11,26,11,10,11,-1,10,-15,10,-33,10,-45,10,-63,10,-79,10,-96,10,-112,10,-128,10,107,10,89,10,70,10,50,10,27,10,10,10,-14,9,-38,9,-56,9,-83,9,-106,9,-128,9,100,9,82,9,49,9,28,9,-2,8,-27,8,-61,8,-81,8,-115,8,110,8,85,8,49,8,20,8,-11,7,-43,7,-71,7,-108,7,112,7,85,7,44,7,10,7,-25,6,-59,6,-102,6,125,6,82,6,42,6,10,6,-33,5,-74,5,-110,5,104,5,69,5,25,5,-19,4,-56,4,-101,4,109,4,73,4,26,4,-20,3,-59,3,-107,3,102,3,63,3,15,3,-24,2,-74,2,-124,2,94,2,42,2,-6,1,-47,1,-100,1,111,1,62,1,20,1,-41,0,-73,0,126,0,85,0,35,0,-19,-1,-60,-1,-109,-1,91,-1,52,-1,-2,-2,-52,-2,-95,-2,110,-2,57,-2,18,-2,-38,-3,-74,-3,126,-3,76,-3,38,-3,-20,-4,-60,-4,-111,-4,101,-4,49,-4,8,-4,-39,-5,-89,-5,125,-5,81,-5,37,-5,-6,-6,-58,-6,-92,-6,114,-6,70,-6,32,-6,-14,-7,-57,-7,-95,-7,118,-7,73,-7,40,-7,-3,-8,-45,-8,-79,-8,-119,-8,103,-8,64,-8,26,-8,-8,-9,-43,-9,-82,-9,-111,-9,108,-9,75,-9,43,-9,13,-9,-24,-10,-47,-10,-81,-10,-106,-10,120,-10,88,-10,68,-10,36,-10,11,-10,-12,-11,-37,-11,-65,-11,-81,-11,-110,-11,-128,-11,108,-11,85,-11,72,-11,46,-11,34,-11,13,-11,-1,-12,-19,-12,-33,-12,-46,-12,-63,-12,-73,-12,-85,-12,-98,-12,-107,-12,-118,-12,-125,-12,122,-12,114,-12,107,-12,102,-12,93,-12,94,-12,85,-12,83,-12,81,-12,79,-12,77,-12,79,-12,75,-12,80,-12,77,-12,85,-12,82,-12,93,-12,88,-12,102,-12,99,-12,112,-12,115,-12,123,-12,-123,-12,-119,-12,-104,-12,-100,-12,-84,-12,-78,-12,-65,-12,-52,-12,-41,-12,-25,-12,-16,-12,4,-11,13,-11,31,-11,48,-11,62,-11,80,-11,97,-11,113,-11,-124,-11,-104,-11,-90,-11,-63,-11,-53,-11,-25,-11,-6,-11,13,-10,36,-10,58,-10,78,-10,103,-10,126,-10,-109,-10,-84,-10,-63,-10,-38,-10,-11,-10,10,-9,38,-9,63,-9,87,-9,113,-9,-112,-9,-94,-9,-58,-9,-38,-9,-7,-9,18,-8,48,-8,74,-8,103,-8,127,-8,-97,-8,-68,-8,-44,-8,-10,-8,19,-7,46,-7,77,-7,108,-7,-121,-7,-91,-7,-55,-7,-33,-7,5,-6,24,-6,64,-6,91,-6,123,-6,-103,-6,-69,-6,-41,-6,-9,-6,27,-5,52,-5,88,-5,120,-5,-106,-5,-74,-5,-45,-5,-11,-5,22,-4,54,-4,83,-4,125,-4,-109,-4,-72,-4,-34,-4,-11,-4,28,-3,63,-3,90,-3,127,-3,-102,-3,-65,-3,-31,-3,-1,-3,34,-2,72,-2,98,-2,-119,-2,-87,-2,-52,-2,-22,-2,20,-1,44,-1,84,-1,111,-1,-108,-1,-70,-1,-44,-1,-3,-1,30,0,62,0,96,0,-120,0,-93,0,-54,0,-19,0,13,1,46,1,88,1,114,1,-105,1,-71,1,-41,1,3,2,27,2,68,2,104,2,-124,2,-84,2,-49,2,-19,2,18,3,55,3,86,3,119,3,-102,3,-71,3,-29,3,-3,3,35,4,70,4,103,4,-122,4,-81,4,-55,4,-17,4,18,5,47,5,82,5,112,5,-110,5,-73,5,-46,5,-11,5,24,6,52,6,86,6,121,6,-110,6,-73,6}; }
	private static byte[] data7(){ return new byte[] {-42,6,-14,6,19,7,46,7,77,7,111,7,-122,7,-86,7,-60,7,-29,7,-4,7,29,8,54,8,81,8,113,8,-121,8,-93,8,-64,8,-42,8,-15,8,8,9,34,9,58,9,83,9,102,9,-124,9,-109,9,-83,9,-59,9,-46,9,-17,9,-2,9,19,10,37,10,55,10,72,10,93,10,104,10,125,10,-118,10,-101,10,-89,10,-75,10,-59,10,-52,10,-33,10,-28,10,-15,10,-5,10,4,11,12,11,20,11,28,11,33,11,41,11,45,11,48,11,54,11,56,11,57,11,62,11,57,11,65,11,57,11,61,11,56,11,53,11,51,11,45,11,43,11,32,11,30,11,19,11,14,11,3,11,-5,10,-17,10,-29,10,-36,10,-54,10,-61,10,-82,10,-92,10,-109,10,-126,10,113,10,97,10,75,10,58,10,41,10,12,10,0,10,-28,9,-47,9,-69,9,-98,9,-119,9,113,9,79,9,63,9,28,9,2,9,-25,8,-56,8,-86,8,-116,8,111,8,80,8,49,8,11,8,-15,7,-55,7,-85,7,-122,7,101,7,62,7,29,7,-9,6,-48,6,-83,6,-119,6,99,6,60,6,18,6,-18,5,-56,5,-104,5,121,5,75,5,34,5,-6,4,-45,4,-95,4,-126,4,80,4,38,4,0,4,-46,3,-83,3,125,3,83,3,42,3,-3,2,-49,2,-89,2,124,2,75,2,38,2,-9,1,-56,1,-92,1,114,1,79,1,31,1,-13,0,-54,0,-98,0,111,0,75,0,29,0,-17,-1,-53,-1,-101,-1,115,-1,74,-1,32,-1,-4,-2,-51,-2,-89,-2,125,-2,87,-2,42,-2,9,-2,-35,-3,-76,-3,-110,-3,106,-3,64,-3,32,-3,-7,-4,-43,-4,-76,-4,-121,-4,108,-4,69,-4,31,-4,2,-4,-35,-5,-71,-5,-100,-5,122,-5,85,-5,61,-5,24,-5,0,-5,-34,-6,-66,-6,-92,-6,-121,-6,102,-6,79,-6,51,-6,17,-6,1,-6,-33,-7,-57,-7,-78,-7,-107,-7,125,-7,106,-7,79,-7,62,-7,38,-7,13,-7,-1,-8,-26,-8,-46,-8,-65,-8,-79,-8,-108,-8,-113,-8,116,-8,102,-8,88,-8,70,-8,59,-8,40,-8,29,-8,12,-8,3,-8,-16,-9,-23,-9,-36,-9,-49,-9,-60,-9,-67,-9,-83,-9,-86,-9,-98,-9,-105,-9,-113,-9,-123,-9,-127,-9,120,-9,114,-9,109,-9,101,-9,99,-9,91,-9,91,-9,82,-9,83,-9,77,-9,77,-9,75,-9,69,-9,74,-9,65,-9,72,-9,64,-9,71,-9,66,-9,69,-9,71,-9,68,-9,74,-9,75,-9,76,-9,81,-9,81,-9,88,-9,88,-9,94,-9,99,-9,100,-9,111,-9,109,-9,119,-9,123,-9,-126,-9,-120,-9,-114,-9,-106,-9,-101,-9,-91,-9,-86,-9,-75,-9,-70,-9,-60,-9,-51,-9,-42,-9,-34,-9,-21,-9,-17,-9,-1,-9,5,-8,19,-8,26,-8,39,-8,50,-8,61,-8,74,-8,83,-8,100,-8,107,-8,125,-8,-120,-8,-108,-8,-94,-8,-77,-8,-70,-8,-46,-8,-45,-8,-18,-8,-12,-8,10,-7,19,-7,42,-7,51,-7,71,-7,87,-7,103,-7,120,-7,-116,-7,-104,-7,-82,-7,-65,-7,-48,-7,-28,-7,-14,-7,6,-6,32,-6,39,-6,72,-6,81,-6,107,-6,127,-6,-110,-6,-86,-6,-72,-6,-39,-6,-30,-6,2,-5,14,-5,41,-5,67,-5,83,-5,110,-5,-120,-5,-103,-5,-73,-5,-51,-5,-27,-5,-4,-5,27,-4,45,-4,75,-4,93,-4,125,-4,-107,-4,-81,-4,-54,-4,-26,-4,-1,-4,25,-3,59,-3,78,-3,112,-3,-118,-3,-89,-3,-64,-3,-34,-3,-8,-3,27,-2,51,-2,80,-2,116,-2,-119,-2,-82,-2,-54,-2,-25,-2,5,-1,39,-1,66,-1,98,-1,125,-1,-99,-1,-63,-1,-39,-1,-3,-1,30,0,55,0,93,0,122,0,-101,0,-73,0,-33,0,-10,0,27,1,58,1,90,1,120,1,-105,1,-73,1,-38,1,-11,1,25,2,56,2,86,2,119,2,-103,2,-75,2,-44,2,-6,2,15,3,56,3,76,3,114,3,-112,3,-85,3,-52,3,-20,3,7,4,38,4,70,4,95,4,-127,4,-101,4,-70,4,-46,4,-15,4,10,5,44,5,63,5,97,5,121,5,-109,5,-82,5,-53,5,-34,5,-2,5,18,6,45,6,68,6,89,6,115,6,-119,6,-96,6,-76,6,-49,6,-34,6,-10,6,13,7,26,7,52,7,69,7,86,7,107,7,121,7,-114,7,-101,7,-84,7,-68,7,-54,7,-38,7,-26,7,-7,7,-2,7,18,8,25,8,39,8,50,8,59,8,69,8,80,8,85,8,97,8,103,8,108,8,119,8,121,8,-127,8,-121,8,-122,8,-111,8,-115,8,-106,8,-108,8,-103,8,-107,8,-102,8,-105,8,-104,8,-106,8,-105,8,-114,8,-108,8,-120,8,-116,8,-126,8,-128,8,120,8,117,8,110,8,100,8,98,8,84,8,80,8,68,8,61,8,49,8,40,8}; }
	private static byte[] data8(){ return new byte[] {28,8,17,8,5,8,-7,7,-19,7,-35,7,-45,7,-62,7,-73,7,-90,7,-104,7,-123,7,123,7,99,7,89,7,69,7,49,7,36,7,12,7,-2,6,-23,6,-41,6,-60,6,-81,6,-103,6,-118,6,112,6,93,6,72,6,47,6,31,6,2,6,-13,5,-43,5,-61,5,-84,5,-109,5,-128,5,98,5,80,5,53,5,28,5,5,5,-18,4,-47,4,-68,4,-94,4,-122,4,114,4,85,4,64,4,36,4,10,4,-13,3,-42,3,-66,3,-93,3,-117,3,109,3,87,3,60,3,30,3,9,3,-20,2,-46,2,-73,2,-96,2,-124,2,110,2,77,2,57,2,26,2,2,2,-25,1,-49,1,-79,1,-103,1,-128,1,99,1,76,1,49,1,27,1,-3,0,-26,0,-52,0,-79,0,-104,0,127,0,102,0,74,0,51,0,28,0,-4,-1,-22,-1,-48,-1,-74,-1,-93,-1,-127,-1,112,-1,86,-1,58,-1,39,-1,12,-1,-14,-2,-32,-2,-62,-2,-82,-2,-108,-2,-128,-2,107,-2,78,-2,60,-2,33,-2,16,-2,-17,-3,-27,-3,-60,-3,-77,-3,-101,-3,-122,-3,109,-3,92,-3,66,-3,51,-3,24,-3,4,-3,-15,-4,-37,-4,-63,-4,-75,-4,-104,-4,-119,-4,113,-4,97,-4,69,-4,59,-4,30,-4,17,-4,-8,-5,-21,-5,-45,-5,-59,-5,-83,-5,-99,-5,-117,-5,116,-5,103,-5,82,-5,63,-5,47,-5,30,-5,9,-5,-5,-6,-24,-6,-38,-6,-57,-6,-73,-6,-88,-6,-108,-6,-121,-6,116,-6,105,-6,85,-6,72,-6,56,-6,39,-6,30,-6,9,-6,3,-6,-20,-7,-26,-7,-47,-7,-52,-7,-75,-7,-78,-7,-99,-7,-105,-7,-123,-7,127,-7,108,-7,104,-7,88,-7,82,-7,66,-7,60,-7,46,-7,41,-7,26,-7,22,-7,8,-7,3,-7,-6,-8,-15,-8,-22,-8,-30,-8,-36,-8,-43,-8,-51,-8,-54,-8,-63,-8,-64,-8,-74,-8,-76,-8,-79,-8,-87,-8,-86,-8,-93,-8,-94,-8,-96,-8,-100,-8,-100,-8,-102,-8,-103,-8,-103,-8,-105,-8,-103,-8,-103,-8,-102,-8,-100,-8,-99,-8,-97,-8,-92,-8,-92,-8,-85,-8,-85,-8,-77,-8,-76,-8,-67,-8,-66,-8,-55,-8,-53,-8,-43,-8,-36,-8,-29,-8,-21,-8,-12,-8,-2,-8,7,-7,17,-7,29,-7,34,-7,52,-7,58,-7,75,-7,84,-7,98,-7,113,-7,125,-7,-116,-7,-100,-7,-86,-7,-72,-7,-52,-7,-40,-7,-18,-7,-6,-7,17,-6,28,-6,51,-6,68,-6,88,-6,108,-6,126,-6,-107,-6,-87,-6,-68,-6,-41,-6,-26,-6,0,-5,25,-5,43,-5,68,-5,90,-5,113,-5,-114,-5,-95,-5,-67,-5,-41,-5,-19,-5,10,-4,35,-4,60,-4,89,-4,115,-4,-115,-4,-87,-4,-64,-4,-32,-4,-5,-4,23,-3,49,-3,84,-3,104,-3,-116,-3,-89,-3,-63,-3,-28,-3,-3,-3,29,-2,57,-2,84,-2,118,-2,-110,-2,-81,-2,-49,-2,-19,-2,12,-1,39,-1,76,-1,98,-1,-122,-1,-92,-1,-64,-1,-32,-1,-5,-1,25,0,61,0,83,0,120,0,-110,0,-76,0,-53,0,-13,0,7,1,41,1,72,1,98,1,-128,1,-96,1,-71,1,-42,1,-14,1,13,2,45,2,68,2,99,2,126,2,-103,2,-77,2,-47,2,-26,2,5,3,31,3,54,3,81,3,101,3,-125,3,-102,3,-77,3,-57,3,-26,3,-11,3,18,4,40,4,60,4,82,4,107,4,124,4,-108,4,-92,4,-69,4,-50,4,-31,4,-11,4,9,5,23,5,46,5,59,5,80,5,93,5,114,5,126,5,-113,5,-101,5,-84,5,-69,5,-57,5,-43,5,-28,5,-18,5,-5,5,10,6,15,6,33,6,38,6,53,6,58,6,72,6,78,6,86,6,96,6,100,6,113,6,115,6,123,6,-125,6,-123,6,-114,6,-111,6,-106,6,-103,6,-97,6,-96,6,-91,6,-92,6,-86,6,-87,6,-83,6,-85,6,-81,6,-83,6,-82,6,-83,6,-83,6,-86,6,-83,6,-90,6,-90,6,-91,6,-98,6,-96,6,-103,6,-105,6,-111,6,-112,6,-122,6,-120,6,123,6,125,6,110,6,114,6,98,6,100,6,86,6,83,6,72,6,67,6,57,6,50,6,41,6,30,6,25,6,11,6,5,6,-7,5,-17,5,-25,5,-41,5,-44,5,-62,5,-66,5,-86,5,-89,5,-108,5,-115,5,126,5,114,5,102,5,89,5,77,5,60,5,52,5,34,5,25,5,9,5,-6,4,-19,4,-32,4,-51,4,-59,4,-80,4,-91,4,-110,4,-119,4,113,4,107,4,84,4,74,4,56,4,38,4,26,4,6,4,-9,3,-26,3,-40,3,-63,3,-73,3,-94,3,-112,3,-125,3,110,3,97,3,78,3,56,3,46,3,22,3,6,3,-11,2,-30,2,-51,2,-63,2,-89,2,-101,2,-125,2,119,2,91,2,82,2,55,2,45,2,19,2,3,2,-15,1}; }
	private static byte[] data9(){ return new byte[] {-38,1,-55,1,-76,1,-93,1,-116,1,124,1,101,1,84,1,60,1,48,1,21,1,8,1,-20,0,-31,0,-59,0,-75,0,-99,0,-113,0,115,0,101,0,78,0,54,0,41,0,15,0,0,0,-23,-1,-45,-1,-64,-1,-83,-1,-108,-1,-124,-1,109,-1,87,-1,69,-1,49,-1,23,-1,10,-1,-17,-2,-30,-2,-56,-2,-75,-2,-94,-2,-116,-2,118,-2,101,-2,79,-2,56,-2,41,-2,17,-2,-3,-3,-22,-3,-40,-3,-64,-3,-75,-3,-107,-3,-116,-3,114,-3,95,-3,79,-3,56,-3,39,-3,17,-3,3,-3,-24,-4,-33,-4,-60,-4,-74,-4,-95,-4,-110,-4,127,-4,111,-4,87,-4,77,-4,55,-4,38,-4,22,-4,5,-4,-14,-5,-27,-5,-46,-5,-63,-5,-76,-5,-94,-5,-106,-5,-124,-5,116,-5,105,-5,86,-5,74,-5,59,-5,45,-5,32,-5,17,-5,6,-5,-9,-6,-21,-6,-32,-6,-45,-6,-56,-6,-69,-6,-78,-6,-91,-6,-101,-6,-112,-6,-121,-6,124,-6,116,-6,106,-6,96,-6,90,-6,79,-6,76,-6,64,-6,58,-6,53,-6,44,-6,38,-6,36,-6,24,-6,26,-6,14,-6,16,-6,7,-6,7,-6,1,-6,-1,-7,-4,-7,-5,-7,-8,-7,-10,-7,-10,-7,-12,-7,-11,-7,-13,-7,-11,-7,-11,-7,-11,-7,-7,-7,-10,-7,-1,-7,-6,-7,4,-6,-1,-7,10,-6,10,-6,15,-6,20,-6,24,-6,31,-6,34,-6,43,-6,48,-6,54,-6,64,-6,67,-6,78,-6,85,-6,92,-6,105,-6,107,-6,124,-6,-127,-6,-115,-6,-105,-6,-95,-6,-82,-6,-74,-6,-57,-6,-53,-6,-32,-6,-28,-6,-10,-6,3,-5,12,-5,31,-5,42,-5,56,-5,72,-5,86,-5,102,-5,114,-5,-122,-5,-111,-5,-92,-5,-75,-5,-63,-5,-41,-5,-32,-5,-9,-5,7,-4,21,-4,45,-4,56,-4,79,-4,93,-4,115,-4,-124,-4,-108,-4,-84,-4,-69,-4,-50,-4,-32,-4,-12,-4,8,-3,28,-3,45,-3,69,-3,83,-3,109,-3,124,-3,-108,-3,-91,-3,-67,-3,-52,-3,-27,-3,-12,-3,12,-2,32,-2,50,-2,73,-2,95,-2,112,-2,-122,-2,-99,-2,-82,-2,-60,-2,-37,-2,-21,-2,4,-1,19,-1,43,-1,63,-1,83,-1,102,-1,127,-1,-112,-1,-94,-1,-65,-1,-56,-1,-28,-1,-9,-1,8,0,32,0,45,0,70,0,87,0,109,0,126,0,-108,0,-90,0,-73,0,-48,0,-35,0,-13,0,7,1,23,1,41,1,64,1,78,1,97,1,114,1,-124,1,-105,1,-88,1,-72,1,-52,1,-35,1,-22,1,2,2,12,2,32,2,51,2,60,2,84,2,91,2,113,2,-127,2,-117,2,-95,2,-85,2,-67,2,-53,2,-37,2,-26,2,-7,2,3,3,20,3,33,3,42,3,61,3,72,3,84,3,99,3,112,3,122,3,-120,3,-107,3,-96,3,-84,3,-71,3,-63,3,-48,3,-41,3,-27,3,-18,3,-7,3,3,4,14,4,24,4,32,4,45,4,51,4,61,4,72,4,78,4,90,4,95,4,106,4,111,4,120,4,-127,4,-122,4,-112,4,-109,4,-96,4,-97,4,-82,4,-84,4,-71,4,-70,4,-61,4,-59,4,-49,4,-51,4,-39,4,-39,4,-33,4,-29,4,-25,4,-20,4,-19,4,-11,4,-14,4,-6,4,-5,4,-3,4,0,5,3,5,3,5,6,5,8,5,7,5,11,5,10,5,10,5,13,5,11,5,13,5,9,5,14,5,7,5,13,5,6,5,8,5,5,5,5,5,0,5,1,5,-5,4,-5,4,-9,4,-12,4,-15,4,-21,4,-21,4,-29,4,-30,4,-38,4,-37,4,-50,4,-47,4,-59,4,-61,4,-69,4,-74,4,-82,4,-86,4,-97,4,-99,4,-112,4,-116,4,-125,4,125,4,115,4,107,4,96,4,91,4,77,4,73,4,59,4,48,4,43,4,27,4,19,4,9,4,-5,3,-11,3,-28,3,-35,3,-53,3,-57,3,-79,3,-84,3,-100,3,-115,3,-124,3,114,3,104,3,86,3,78,3,58,3,48,3,30,3,18,3,1,3,-15,2,-30,2,-45,2,-61,2,-78,2,-93,2,-111,2,-128,2,116,2,90,2,84,2,56,2,52,2,22,2,12,2,-10,1,-24,1,-48,1,-58,1,-84,1,-100,1,-116,1,119,1,98,1,85,1,59,1,49,1,24,1,6,1,-14,0,-30,0,-57,0,-67,0,-93,0,-113,0,-127,0,102,0,87,0,66,0,46,0,30,0,5,0,-12,-1,-32,-1,-53,-1,-71,-1,-95,-1,-108,-1,119,-1,107,-1,84,-1,63,-1,45,-1,27,-1,5,-1,-10,-2,-38,-2,-47,-2,-75,-2,-89,-2,-110,-2,125,-2,109,-2,87,-2,73,-2,48,-2,35,-2,12,-2,0,-2,-24,-3,-38,-3,-58,-3,-74,-3,-96,-3,-109,-3,-128,-3,110,-3,96,-3,75,-3,61,-3,42,-3,31,-3,9,-3,-4,-4,-19,-4,-35,-4,-50,-4}; }
	private static byte[] data10(){ return new byte[] {-65,-4,-79,-4,-95,-4,-110,-4,-122,-4,117,-4,107,-4,91,-4,79,-4,64,-4,53,-4,42,-4,27,-4,20,-4,1,-4,-4,-5,-18,-5,-29,-5,-39,-5,-50,-5,-60,-5,-70,-5,-77,-5,-91,-5,-96,-5,-106,-5,-115,-5,-119,-5,122,-5,122,-5,109,-5,106,-5,95,-5,95,-5,80,-5,83,-5,72,-5,70,-5,61,-5,62,-5,53,-5,52,-5,47,-5,43,-5,41,-5,38,-5,34,-5,34,-5,29,-5,32,-5,25,-5,29,-5,23,-5,28,-5,24,-5,25,-5,27,-5,23,-5,31,-5,25,-5,32,-5,30,-5,34,-5,35,-5,40,-5,38,-5,48,-5,44,-5,54,-5,53,-5,60,-5,63,-5,68,-5,74,-5,76,-5,86,-5,87,-5,96,-5,101,-5,107,-5,115,-5,120,-5,-127,-5,-122,-5,-112,-5,-109,-5,-94,-5,-94,-5,-78,-5,-76,-5,-63,-5,-55,-5,-48,-5,-34,-5,-31,-5,-14,-5,-11,-5,6,-4,8,-4,27,-4,28,-4,49,-4,50,-4,70,-4,74,-4,90,-4,100,-4,111,-4,126,-4,-124,-4,-106,-4,-96,-4,-84,-4,-69,-4,-60,-4,-46,-4,-33,-4,-22,-4,-3,-4,1,-3,24,-3,30,-3,47,-3,61,-3,72,-3,90,-3,101,-3,114,-3,-123,-3,-117,-3,-95,-3,-86,-3,-69,-3,-56,-3,-42,-3,-24,-3,-12,-3,2,-2,20,-2,32,-2,46,-2,67,-2,73,-2,96,-2,103,-2,125,-2,-121,-2,-103,-2,-89,-2,-74,-2,-55,-2,-48,-2,-22,-2,-16,-2,4,-1,20,-1,33,-1,48,-1,64,-1,77,-1,96,-1,109,-1,124,-1,-113,-1,-104,-1,-82,-1,-72,-1,-52,-1,-42,-1,-20,-1,-11,-1,7,0,20,0,36,0,52,0,67,0,79,0,99,0,111,0,124,0,-109,0,-106,0,-80,0,-72,0,-56,0,-38,0,-29,0,-8,0,0,1,17,1,31,1,47,1,57,1,77,1,86,1,105,1,113,1,-123,1,-114,1,-98,1,-82,1,-74,1,-55,1,-48,1,-30,1,-19,1,-5,1,8,2,22,2,32,2,48,2,57,2,75,2,81,2,99,2,107,2,121,2,-125,2,-111,2,-102,2,-87,2,-80,2,-63,2,-57,2,-42,2,-34,2,-20,2,-14,2,2,3,9,3,20,3,28,3,41,3,49,3,59,3,68,3,79,3,86,3,97,3,105,3,114,3,122,3,-125,3,-118,3,-108,3,-101,3,-93,3,-88,3,-79,3,-71,3,-66,3,-57,3,-54,3,-44,3,-38,3,-36,3,-24,3,-25,3,-13,3,-13,3,-5,3,-2,3,3,4,9,4,11,4,15,4,22,4,20,4,30,4,27,4,34,4,36,4,37,4,40,4,43,4,44,4,46,4,47,4,47,4,51,4,48,4,54,4,47,4,55,4,46,4,55,4,46,4,52,4,46,4,48,4,44,4,45,4,40,4,39,4,40,4,29,4,37,4,24,4,27,4,21,4,17,4,15,4,7,4,9,4,-5,3,0,4,-12,3,-14,3,-19,3,-28,3,-30,3,-40,3,-42,3,-54,3,-56,3,-66,3,-72,3,-78,3,-90,3,-94,3,-103,3,-112,3,-116,3,124,3,122,3,108,3,101,3,92,3,82,3,72,3,61,3,54,3,39,3,33,3,20,3,10,3,2,3,-15,2,-21,2,-35,2,-48,2,-55,2,-72,2,-81,2,-95,2,-105,2,-120,2,125,2,112,2,101,2,85,2,76,2,58,2,50,2,31,2,21,2,9,2,-12,1,-16,1,-38,1,-48,1,-63,1,-77,1,-93,1,-103,1,-122,1,125,1,106,1,93,1,81,1,61,1,52,1,32,1,21,1,4,1,-10,0,-23,0,-43,0,-54,0,-69,0,-83,0,-98,0,-114,0,-128,0,117,0,97,0,89,0,69,0,59,0,42,0,32,0,12,0,5,0,-7,-1,-18,-1,-35,-1,-49,-1,-62,-1,-76,-1,-93,-1,-104,-1,-120,-1,121,-1,109,-1,94,-1,78,-1,68,-1,52,-1,39,-1,26,-1,10,-1,-2,-2,-13,-2,-34,-2,-40,-2,-57,-2,-72,-2,-79,-2,-100,-2,-107,-2,-124,-2,123,-2,108,-2,97,-2,82,-2,73,-2,57,-2,47,-2,33,-2,23,-2,9,-2,-2,-3,-13,-3,-27,-3,-35,-3,-50,-3,-58,-3,-73,-3,-78,-3,-95,-3,-100,-3,-116,-3,-121,-3,121,-3,111,-3,103,-3,90,-3,83,-3,73,-3,62,-3,55,-3,43,-3,37,-3,27,-3,20,-3,9,-3,3,-3,-8,-4,-12,-4,-26,-4,-24,-4,-43,-4,-41,-4,-53,-4,-59,-4,-66,-4,-69,-4,-82,-4,-81,-4,-93,-4,-96,-4,-100,-4,-111,-4,-111,-4,-119,-4,-124,-4,-127,-4,123,-4,118,-4,116,-4,109,-4,109,-4,102,-4,101,-4,96,-4,93,-4,91,-4,87,-4,88,-4,79,-4,85,-4,75,-4,81,-4,73,-4,76,-4,71,-4,75,-4,70,-4,72,-4,69,-4,73,-4,68,-4,73,-4,70,-4,71,-4,74,-4,73,-4,74,-4,77,-4,77,-4,79,-4,83,-4}; }
	private static byte[] data11(){ return new byte[] {81,-4,88,-4,87,-4,91,-4,94,-4,97,-4,101,-4,102,-4,109,-4,110,-4,115,-4,121,-4,122,-4,-127,-4,-123,-4,-120,-4,-111,-4,-110,-4,-102,-4,-96,-4,-92,-4,-85,-4,-80,-4,-72,-4,-69,-4,-56,-4,-57,-4,-43,-4,-43,-4,-30,-4,-27,-4,-15,-4,-12,-4,1,-3,4,-3,14,-3,25,-3,29,-3,41,-3,48,-3,56,-3,68,-3,74,-3,87,-3,91,-3,104,-3,113,-3,122,-3,-123,-3,-116,-3,-100,-3,-97,-3,-79,-3,-76,-3,-59,-3,-55,-3,-36,-3,-33,-3,-16,-3,-11,-3,4,-2,15,-2,24,-2,39,-2,48,-2,60,-2,72,-2,85,-2,94,-2,109,-2,119,-2,-124,-2,-113,-2,-100,-2,-90,-2,-75,-2,-64,-2,-53,-2,-35,-2,-30,-2,-12,-2,-2,-2,13,-1,21,-1,42,-1,44,-1,67,-1,69,-1,91,-1,97,-1,117,-1,121,-1,-112,-1,-110,-1,-88,-1,-79,-1,-66,-1,-52,-1,-40,-1,-27,-1,-14,-1,-3,-1,11,0,26,0,34,0,51,0,64,0,72,0,91,0,99,0,114,0,126,0,-115,0,-109,0,-87,0,-84,0,-64,0,-57,0,-44,0,-29,0,-20,0,-7,0,7,1,16,1,31,1,40,1,55,1,64,1,77,1,89,1,98,1,114,1,118,1,-121,1,-112,1,-101,1,-90,1,-77,1,-70,1,-57,1,-46,1,-37,1,-26,1,-14,1,-7,1,4,2,15,2,20,2,38,2,39,2,54,2,63,2,67,2,83,2,87,2,99,2,105,2,115,2,124,2,-126,2,-117,2,-110,2,-100,2,-95,2,-84,2,-82,2,-68,2,-67,2,-56,2,-50,2,-47,2,-34,2,-33,2,-24,2,-20,2,-12,2,-10,2,0,3,2,3,8,3,14,3,17,3,25,3,26,3,32,3,36,3,41,3,43,3,49,3,49,3,57,3,55,3,63,3,61,3,68,3,67,3,73,3,72,3,74,3,79,3,76,3,83,3,80,3,82,3,83,3,85,3,83,3,87,3,85,3,83,3,89,3,80,3,90,3,79,3,87,3,79,3,83,3,79,3,79,3,75,3,76,3,72,3,71,3,69,3,65,3,62,3,62,3,55,3,57,3,47,3,51,3,41,3,41,3,35,3,30,3,31,3,20,3,22,3,10,3,11,3,3,3,-2,2,-6,2,-13,2,-19,2,-22,2,-33,2,-33,2,-46,2,-45,2,-58,2,-58,2,-73,2,-71,2,-86,2,-88,2,-98,2,-104,2,-113,2,-119,2,-128,2,118,2,115,2,101,2,99,2,87,2,77,2,72,2,60,2,54,2,42,2,36,2,23,2,17,2,6,2,-2,1,-15,1,-20,1,-33,1,-40,1,-53,1,-60,1,-73,1,-81,1,-93,1,-101,1,-116,1,-120,1,120,1,111,1,102,1,88,1,83,1,66,1,59,1,46,1,38,1,21,1,18,1,-1,0,-8,0,-19,0,-33,0,-42,0,-54,0,-65,0,-79,0,-86,0,-102,0,-108,0,-123,0,121,0,112,0,99,0,88,0,75,0,66,0,51,0,42,0,31,0,16,0,8,0,-5,-1,-14,-1,-29,-1,-38,-1,-51,-1,-61,-1,-73,-1,-85,-1,-95,-1,-108,-1,-118,-1,125,-1,116,-1,103,-1,94,-1,82,-1,71,-1,59,-1,51,-1,38,-1,25,-1,20,-1,2,-1,-2,-2,-17,-2,-25,-2,-37,-2,-48,-2,-55,-2,-68,-2,-76,-2,-89,-2,-96,-2,-107,-2,-118,-2,-126,-2,118,-2,111,-2,99,-2,94,-2,76,-2,78,-2,59,-2,56,-2,45,-2,37,-2,28,-2,22,-2,6,-2,8,-2,-9,-3,-11,-3,-23,-3,-29,-3,-38,-3,-46,-3,-51,-3,-61,-3,-67,-3,-74,-3,-82,-3,-87,-3,-95,-3,-103,-3,-106,-3,-117,-3,-119,-3,-128,-3,123,-3,118,-3,111,-3,104,-3,103,-3,92,-3,94,-3,84,-3,79,-3,77,-3,71,-3,65,-3,64,-3,57,-3,54,-3,51,-3,46,-3,43,-3,39,-3,38,-3,32,-3,32,-3,27,-3,25,-3,24,-3,18,-3,21,-3,14,-3,16,-3,11,-3,12,-3,9,-3,9,-3,7,-3,7,-3,5,-3,5,-3,5,-3,4,-3,6,-3,2,-3,5,-3,6,-3,3,-3,9,-3,4,-3,8,-3,10,-3,9,-3,12,-3,12,-3,15,-3,16,-3,19,-3,21,-3,21,-3,28,-3,27,-3,30,-3,36,-3,33,-3,44,-3,40,-3,50,-3,49,-3,54,-3,58,-3,61,-3,68,-3,69,-3,77,-3,78,-3,86,-3,89,-3,93,-3,102,-3,102,-3,114,-3,112,-3,124,-3,124,-3,-120,-3,-120,-3,-109,-3,-106,-3,-97,-3,-93,-3,-83,-3,-81,-3,-69,-3,-65,-3,-59,-3,-47,-3,-46,-3,-33,-3,-28,-3,-23,-3,-10,-3,-8,-3,4,-2,11,-2,19,-2,27,-2,35,-2,45,-2,51,-2,62,-2,69,-2,78,-2,88,-2,93,-2,106,-2,113,-2,122,-2,-125,-2,-113,-2,-107,-2,-97,-2,-86,-2,-78,-2,-68,-2,-57,-2}; }
	private static byte[] data12(){ return new byte[] {-51,-2,-37,-2,-31,-2,-20,-2,-10,-2,0,-1,8,-1,23,-1,27,-1,41,-1,51,-1,58,-1,72,-1,79,-1,93,-1,98,-1,112,-1,119,-1,-123,-1,-116,-1,-103,-1,-95,-1,-84,-1,-73,-1,-62,-1,-53,-1,-42,-1,-32,-1,-21,-1,-13,-1,0,0,7,0,22,0,27,0,40,0,51,0,60,0,69,0,84,0,87,0,104,0,111,0,119,0,-122,0,-117,0,-103,0,-95,0,-88,0,-73,0,-68,0,-54,0,-49,0,-35,0,-28,0,-18,0,-7,0,0,1,11,1,20,1,29,1,38,1,45,1,57,1,65,1,73,1,82,1,92,1,98,1,109,1,118,1,123,1,-121,1,-115,1,-107,1,-97,1,-93,1,-82,1,-75,1,-69,1,-59,1,-53,1,-44,1,-40,1,-29,1,-25,1,-17,1,-8,1,-5,1,3,2,11,2,13,2,25,2,26,2,34,2,42,2,44,2,52,2,58,2,62,2,68,2,73,2,79,2,81,2,91,2,90,2,99,2,100,2,106,2,110,2,113,2,119,2,121,2,125,2,-127,2,-124,2,-121,2,-117,2,-115,2,-112,2,-108,2,-109,2,-102,2,-104,2,-99,2,-98,2,-96,2,-94,2,-92,2,-93,2,-87,2,-93,2,-83,2,-91,2,-83,2,-86,2,-87,2,-82,2,-87,2,-82,2,-87,2,-82,2,-88,2,-83,2,-87,2,-88,2,-86,2,-92,2,-88,2,-92,2,-92,2,-96,2,-95,2,-100,2,-98,2,-104,2,-103,2,-109,2,-107,2,-115,2,-112,2,-121,2,-119,2,-125,2,-127,2,125,2,122,2,117,2,115,2,109,2,108,2,100,2,99,2,92,2,89,2,84,2,79,2,75,2,67,2,67,2,58,2,54,2,48,2,43,2,36,2,33,2,24,2,20,2,12,2,9,2,-1,1,-5,1,-12,1,-19,1,-24,1,-33,1,-38,1,-45,1,-53,1,-60,1,-68,1,-72,1,-85,1,-85,1,-101,1,-101,1,-114,1,-120,1,-125,1,119,1,114,1,104,1,97,1,88,1,81,1,72,1,62,1,57,1,45,1,41,1,26,1,25,1,9,1,9,1,-9,0,-10,0,-24,0,-32,0,-38,0,-50,0,-59,0,-65,0,-79,0,-82,0,-97,0,-101,0,-116,0,-118,0,122,0,119,0,107,0,96,0,91,0,78,0,70,0,62,0,51,0,42,0,34,0,24,0,13,0,7,0,-5,-1,-12,-1,-19,-1,-36,-1,-35,-1,-53,-1,-57,-1,-69,-1,-74,-1,-90,-1,-91,-1,-106,-1,-113,-1,-122,-1,125,-1,119,-1,105,-1,102,-1,88,-1,82,-1,75,-1,60,-1,61,-1,41,-1,43,-1,29,-1,20,-1,16,-1,2,-1,1,-1,-13,-2,-18,-2,-27,-2,-35,-2,-43,-2,-50,-2,-60,-2,-64,-2,-77,-2,-77,-2,-93,-2,-93,-2,-105,-2,-111,-2,-118,-2,-123,-2,123,-2,120,-2,108,-2,106,-2,97,-2,91,-2,85,-2,78,-2,71,-2,67,-2,59,-2,54,-2,48,-2,41,-2,39,-2,31,-2,24,-2,23,-2,13,-2,12,-2,4,-2,1,-2,-6,-3,-7,-3,-16,-3,-17,-3,-25,-3,-24,-3,-33,-3,-32,-3,-42,-3,-41,-3,-47,-3,-50,-3,-51,-3,-60,-3,-57,-3,-65,-3,-65,-3,-68,-3,-73,-3,-72,-3,-78,-3,-77,-3,-83,-3,-81,-3,-86,-3,-87,-3,-88,-3,-90,-3,-93,-3,-91,-3,-97,-3,-93,-3,-97,-3,-98,-3,-97,-3,-100,-3,-98,-3,-100,-3,-99,-3,-100,-3,-100,-3,-99,-3,-101,-3,-97,-3,-100,-3,-95,-3,-101,-3,-92,-3,-100,-3,-88,-3,-98,-3,-88,-3,-93,-3,-85,-3,-89,-3,-83,-3,-85,-3,-79,-3,-79,-3,-76,-3,-74,-3,-70,-3,-70,-3,-64,-3,-64,-3,-59,-3,-58,-3,-51,-3,-53,-3,-44,-3,-45,-3,-38,-3,-37,-3,-29,-3,-30,-3,-22,-3,-20,-3,-13,-3,-14,-3,-2,-3,-5,-3,5,-2,9,-2,9,-2,24,-2,18,-2,32,-2,32,-2,39,-2,45,-2,52,-2,54,-2,64,-2,65,-2,76,-2,77,-2,88,-2,89,-2,99,-2,105,-2,108,-2,120,-2,121,-2,-124,-2,-120,-2,-111,-2,-108,-2,-95,-2,-93,-2,-85,-2,-78,-2,-70,-2,-64,-2,-54,-2,-52,-2,-38,-2,-36,-2,-26,-2,-18,-2,-11,-2,-5,-2,6,-1,11,-1,20,-1,27,-1,34,-1,44,-1,50,-1,59,-1,67,-1,74,-1,83,-1,92,-1,98,-1,108,-1,114,-1,125,-1,-126,-1,-115,-1,-110,-1,-98,-1,-94,-1,-82,-1,-76,-1,-67,-1,-59,-1,-49,-1,-44,-1,-32,-1,-27,-1,-17,-1,-8,-1,-3,-1,8,0,15,0,25,0,29,0,44,0,45,0,58,0,66,0,70,0,83,0,88,0,98,0,104,0,116,0,117,0,-123,0,-124,0,-109,0,-104,0,-97,0,-86,0,-83,0,-71,0,-66,0,-57,0,-50,0,-43,0,-35,0,-26,0,-23,0,-12,0,-8,0,3,1,5,1,18,1,19,1,32,1,33,1,44,1,48,1}; }
	private static byte[] data13(){ return new byte[] {57,1,62,1,70,1,72,1,85,1,84,1,97,1,98,1,107,1,112,1,118,1,123,1,-127,1,-119,1,-117,1,-109,1,-104,1,-103,1,-90,1,-93,1,-81,1,-82,1,-74,1,-69,1,-65,1,-62,1,-54,1,-54,1,-46,1,-43,1,-41,1,-33,1,-34,1,-25,1,-27,1,-18,1,-20,1,-12,1,-11,1,-9,1,-2,1,-4,1,2,2,5,2,4,2,12,2,9,2,15,2,14,2,19,2,19,2,21,2,25,2,22,2,28,2,28,2,27,2,33,2,29,2,33,2,32,2,34,2,35,2,34,2,36,2,33,2,38,2,34,2,36,2,36,2,33,2,37,2,32,2,35,2,31,2,33,2,30,2,31,2,28,2,28,2,24,2,27,2,21,2,23,2,19,2,15,2,18,2,11,2,13,2,8,2,7,2,1,2,3,2,-2,1,-4,1,-7,1,-12,1,-13,1,-16,1,-21,1,-23,1,-29,1,-29,1,-36,1,-38,1,-42,1,-48,1,-48,1,-57,1,-57,1,-64,1,-67,1,-73,1,-77,1,-81,1,-86,1,-92,1,-96,1,-102,1,-105,1,-114,1,-114,1,-125,1,-124,1,120,1,120,1,110,1,108,1,99,1,96,1,86,1,85,1,75,1,72,1,63,1,60,1,51,1,46,1,39,1,35,1,25,1,21,1,11,1,11,1,-4,0,-4,0,-15,0,-21,0,-25,0,-36,0,-40,0,-46,0,-58,0,-58,0,-71,0,-76,0,-82,0,-91,0,-97,0,-105,0,-111,0,-121,0,-125,0,122,0,114,0,109,0,99,0,95,0,83,0,83,0,66,0,69,0,51,0,53,0,38,0,37,0,24,0,21,0,10,0,6,0,-5,-1,-7,-1,-21,-1,-22,-1,-34,-1,-38,-1,-48,-1,-55,-1,-60,-1,-70,-1,-76,-1,-82,-1,-93,-1,-95,-1,-107,-1,-109,-1,-121,-1,-124,-1,123,-1,115,-1,111,-1,101,-1,97,-1,87,-1,82,-1,76,-1,68,-1,62,-1,54,-1,50,-1,42,-1,36,-1,30,-1,22,-1,17,-1,9,-1,7,-1,-5,-2,-6,-2,-15,-2,-21,-2,-24,-2,-33,-2,-39,-2,-41,-2,-51,-2,-52,-2,-61,-2,-66,-2,-69,-2,-78,-2,-79,-2,-88,-2,-92,-2,-95,-2,-102,-2,-107,-2,-109,-2,-119,-2,-118,-2,-124,-2,126,-2,122,-2,120,-2,112,-2,113,-2,102,-2,106,-2,94,-2,99,-2,86,-2,91,-2,81,-2,82,-2,77,-2,72,-2,73,-2,67,-2,65,-2,62,-2,58,-2,58,-2,54,-2,50,-2,51,-2,46,-2,44,-2,44,-2,40,-2,38,-2,39,-2,34,-2,34,-2,33,-2,29,-2,32,-2,27,-2,27,-2,28,-2,23,-2,27,-2,23,-2,23,-2,24,-2,22,-2,22,-2,22,-2,23,-2,21,-2,24,-2,20,-2,24,-2,22,-2,24,-2,25,-2,23,-2,28,-2,24,-2,30,-2,26,-2,32,-2,30,-2,33,-2,34,-2,35,-2,37,-2,41,-2,38,-2,46,-2,42,-2,48,-2,51,-2,48,-2,59,-2,50,-2,65,-2,58,-2,66,-2,67,-2,71,-2,73,-2,77,-2,79,-2,83,-2,87,-2,91,-2,92,-2,97,-2,102,-2,102,-2,112,-2,108,-2,121,-2,116,-2,-128,-2,127,-2,-121,-2,-120,-2,-112,-2,-111,-2,-105,-2,-97,-2,-98,-2,-89,-2,-87,-2,-81,-2,-74,-2,-72,-2,-65,-2,-61,-2,-55,-2,-50,-2,-42,-2,-43,-2,-28,-2,-34,-2,-17,-2,-20,-2,-10,-2,-6,-2,0,-1,7,-1,10,-1,21,-1,21,-1,31,-1,36,-1,42,-1,48,-1,55,-1,59,-1,68,-1,72,-1,78,-1,88,-1,88,-1,101,-1,103,-1,110,-1,120,-1,121,-1,-123,-1,-122,-1,-110,-1,-108,-1,-98,-1,-96,-1,-84,-1,-83,-1,-71,-1,-68,-1,-60,-1,-54,-1,-47,-1,-40,-1,-33,-1,-29,-1,-18,-1,-16,-1,-5,-1,-3,-1,6,0,12,0,21,0,22,0,37,0,33,0,49,0,51,0,57,0,67,0,69,0,79,0,84,0,91,0,96,0,105,0,107,0,117,0,122,0,127,0,-120,0,-116,0,-109,0,-103,0,-98,0,-90,0,-85,0,-80,0,-70,0,-72,0,-59,0,-58,0,-48,0,-46,0,-38,0,-36,0,-25,0,-24,0,-15,0,-14,0,-4,0,-3,0,6,1,9,1,13,1,20,1,24,1,29,1,33,1,41,1,42,1,47,1,56,1,53,1,66,1,63,1,72,1,74,1,78,1,83,1,87,1,89,1,97,1,96,1,103,1,105,1,110,1,111,1,118,1,118,1,124,1,124,1,-125,1,-127,1,-118,1,-121,1,-115,1,-112,1,-113,1,-105,1,-108,1,-102,1,-101,1,-100,1,-95,1,-95,1,-94,1,-89,1,-92,1,-86,1,-86,1,-86,1,-82,1,-83,1,-81,1,-79,1,-80,1,-77,1,-77,1,-76,1,-76,1,-75,1,-74,1,-74,1,-75,1,-72,1,-75,1,-71,1,-76,1,-72,1,-75,1}; }
	private static byte[] data14(){ return new byte[] {-73,1,-75,1,-75,1,-77,1,-74,1,-80,1,-75,1,-81,1,-79,1,-82,1,-81,1,-85,1,-84,1,-86,1,-89,1,-89,1,-91,1,-95,1,-92,1,-99,1,-98,1,-102,1,-103,1,-105,1,-108,1,-110,1,-113,1,-116,1,-117,1,-122,1,-122,1,-128,1,126,1,124,1,120,1,117,1,114,1,109,1,109,1,102,1,101,1,95,1,93,1,89,1,85,1,81,1,76,1,74,1,68,1,65,1,61,1,56,1,53,1,47,1,43,1,40,1,32,1,31,1,25,1,18,1,18,1,8,1,7,1,0,1,-4,0,-10,0,-12,0,-22,0,-21,0,-33,0,-33,0,-41,0,-46,0,-49,0,-60,0,-57,0,-72,0,-69,0,-80,0,-83,0,-88,0,-97,0,-97,0,-109,0,-110,0,-119,0,-121,0,124,0,125,0,111,0,113,0,101,0,100,0,91,0,86,0,80,0,76,0,67,0,66,0,53,0,55,0,41,0,42,0,33,0,26,0,22,0,16,0,7,0,7,0,-6,-1,-6,-1,-13,-1,-22,-1,-23,-1,-35,-1,-35,-1,-45,-1,-48,-1,-56,-1,-61,-1,-66,-1,-73,-1,-79,-1,-83,-1,-89,-1,-96,-1,-100,-1,-106,-1,-114,-1,-114,-1,-127,-1,-126,-1,121,-1,117,-1,110,-1,107,-1,98,-1,98,-1,88,-1,86,-1,79,-1,75,-1,69,-1,63,-1,61,-1,53,-1,51,-1,42,-1,41,-1,34,-1,31,-1,25,-1,20,-1,17,-1,11,-1,8,-1,4,-1,-3,-2,-5,-2,-10,-2,-15,-2,-17,-2,-22,-2,-28,-2,-29,-2,-34,-2,-40,-2,-39,-2,-47,-2,-48,-2,-52,-2,-57,-2,-59,-2,-62,-2,-67,-2,-68,-2,-73,-2,-76,-2,-78,-2,-82,-2,-83,-2,-88,-2,-90,-2,-91,-2,-96,-2,-98,-2,-98,-2,-104,-2,-104,-2,-106,-2,-110,-2,-110,-2,-113,-2,-115,-2,-117,-2,-117,-2,-121,-2,-121,-2,-122,-2,-127,-2,-123,-2,-128,-2,127,-2,-127,-2,122,-2,127,-2,124,-2,122,-2,124,-2,119,-2,123,-2,119,-2,123,-2,117,-2,122,-2,118,-2,120,-2,119,-2,121,-2,117,-2,124,-2,116,-2,125,-2,117,-2,126,-2,119,-2,125,-2,125,-2,122,-2,-127,-2,124,-2,-126,-2,-127,-2,-127,-2,-122,-2,-125,-2,-119,-2,-122,-2,-117,-2,-117,-2,-114,-2,-113,-2,-111,-2,-109,-2,-107,-2,-104,-2,-104,-2,-97,-2,-101,-2,-93,-2,-94,-2,-90,-2,-86,-2,-86,-2,-82,-2,-79,-2,-77,-2,-72,-2,-72,-2,-66,-2,-66,-2,-59,-2,-58,-2,-55,-2,-50,-2,-48,-2,-44,-2,-39,-2,-38,-2,-32,-2,-28,-2,-28,-2,-19,-2,-20,-2,-13,-2,-9,-2,-6,-2,-3,-2,4,-1,6,-1,11,-1,18,-1,16,-1,27,-1,27,-1,34,-1,38,-1,41,-1,46,-1,53,-1,53,-1,63,-1,64,-1,71,-1,74,-1,80,-1,84,-1,91,-1,93,-1,101,-1,103,-1,109,-1,115,-1,118,-1,126,-1,-128,-1,-120,-1,-117,-1,-112,-1,-104,-1,-102,-1,-94,-1,-91,-1,-85,-1,-80,-1,-74,-1,-71,-1,-62,-1,-61,-1,-53,-1,-47,-1,-45,-1,-37,-1,-31,-1,-29,-1,-20,-1,-17,-1,-12,-1,-4,-1,-3,-1,6,0,9,0,16,0,19,0,28,0,28,0,38,0,42,0,46,0,52,0,58,0,60,0,71,0,70,0,79,0,82,0,88,0,92,0,99,0,101,0,108,0,115,0,114,0,125,0,126,0,-123,0,-120,0,-113,0,-111,0,-104,0,-101,0,-96,0,-91,0,-86,0,-84,0,-75,0,-76,0,-67,0,-65,0,-60,0,-56,0,-51,0,-49,0,-42,0,-41,0,-35,0,-31,0,-28,0,-24,0,-19,0,-18,0,-10,0,-11,0,-3,0,-3,0,3,1,5,1,9,1,10,1,18,1,16,1,23,1,25,1,26,1,33,1,31,1,39,1,37,1,45,1,42,1,49,1,48,1,54,1,54,1,57,1,59,1,61,1,64,1,65,1,68,1,70,1,71,1,73,1,75,1,76,1,81,1,77,1,82,1,83,1,82,1,88,1,84,1,88,1,89,1,88,1,91,1,91,1,91,1,95,1,91,1,93,1,96,1,93,1,95,1,97,1,90,1,102,1,89,1,100,1,93,1,94,1,98,1,89,1,99,1,91,1,94,1,92,1,91,1,92,1,88,1,93,1,84,1,91,1,82,1,89,1,80,1,86,1,79,1,79,1,80,1,74,1,78,1,71,1,72,1,70,1,66,1,69,1,61,1,63,1,59,1,56,1,58,1,50,1,52,1,46,1,47,1,41,1,42,1,37,1,33,1,35,1,26,1,29,1,21,1,21,1,17,1,14,1,11,1,7,1,4,1,1,1,-2,0,-6,0,-9,0,-14,0,-15,0,-21,0,-23,0,-28,0,-31,0,-35,0,-38,0,-43,0,-47,0,-50,0,-56,0,-55,0,-65,0,-65,0,-71,0,-76,0,-77,0}; }
	private static byte[] data15(){ return new byte[] {-84,0,-87,0,-93,0,-95,0,-100,0,-106,0,-107,0,-117,0,-114,0,-125,0,-125,0,123,0,122,0,114,0,111,0,108,0,98,0,101,0,90,0,90,0,81,0,80,0,71,0,72,0,62,0,62,0,54,0,50,0,47,0,38,0,39,0,29,0,29,0,19,0,20,0,8,0,12,0,0,0,-1,-1,-6,-1,-12,-1,-17,-1,-17,-1,-30,-1,-26,-1,-39,-1,-36,-1,-46,-1,-48,-1,-53,-1,-60,-1,-61,-1,-68,-1,-71,-1,-76,-1,-81,-1,-85,-1,-89,-1,-96,-1,-96,-1,-105,-1,-106,-1,-113,-1,-115,-1,-121,-1,-124,-1,126,-1,125,-1,117,-1,116,-1,110,-1,107,-1,102,-1,99,-1,94,-1,90,-1,87,-1,82,-1,80,-1,75,-1,70,-1,69,-1,62,-1,62,-1,57,-1,53,-1,50,-1,47,-1,42,-1,40,-1,37,-1,32,-1,31,-1,26,-1,24,-1,20,-1,18,-1,14,-1,12,-1,11,-1,3,-1,7,-1,-3,-2,1,-1,-6,-2,-7,-2,-9,-2,-12,-2,-14,-2,-17,-2,-20,-2,-19,-2,-25,-2,-23,-2,-28,-2,-30,-2,-29,-2,-35,-2,-33,-2,-36,-2,-40,-2,-36,-2,-44,-2,-41,-2,-44,-2,-46,-2,-45,-2,-47,-2,-51,-2,-48,-2,-51,-2,-53,-2,-50,-2,-57,-2,-51,-2,-57,-2,-55,-2,-56,-2,-56,-2,-59,-2,-54,-2,-62,-2,-54,-2,-62,-2,-55,-2,-61,-2,-56,-2,-61,-2,-55,-2,-61,-2,-56,-2,-58,-2,-57,-2,-56,-2,-57,-2,-54,-2,-57,-2,-51,-2,-56,-2,-51,-2,-52,-2,-52,-2,-47,-2,-51,-2,-46,-2,-46,-2,-47,-2,-41,-2,-44,-2,-40,-2,-40,-2,-38,-2,-36,-2,-34,-2,-33,-2,-33,-2,-26,-2,-31,-2,-22,-2,-26,-2,-20,-2,-20,-2,-16,-2,-16,-2,-12,-2,-10,-2,-8,-2,-5,-2,-4,-2,0,-1,2,-1,5,-1,9,-1,7,-1,17,-1,12,-1,22,-1,20,-1,24,-1,29,-1,30,-1,35,-1,35,-1,41,-1,42,-1,47,-1,50,-1,52,-1,57,-1,60,-1,63,-1,67,-1,69,-1,76,-1,75,-1,84,-1,81,-1,91,-1,91,-1,96,-1,99,-1,103,-1,108,-1,110,-1,116,-1,118,-1,123,-1,125,-1,-123,-1,-124,-1,-116,-1,-114,-1,-111,-1,-103,-1,-105,-1,-94,-1,-95,-1,-88,-1,-86,-1,-79,-1,-80,-1,-67,-1,-73,-1,-60,-1,-64,-1,-52,-1,-54,-1,-45,-1,-46,-1,-35,-1,-38,-1,-27,-1,-29,-1,-19,-1,-19,-1,-12,-1,-10,-1,-4,-1,-2,-1,6,0,6,0,12,0,17,0,20,0,26,0,28,0,33,0,38,0,41,0,46,0,51,0,52,0,61,0,60,0,68,0,68,0,76,0,78,0,81,0,89,0,87,0,97,0,96,0,102,0,107,0,109,0,115,0,116,0,120,0,126,0,-128,0,-123,0,-122,0,-116,0,-113,0,-111,0,-103,0,-106,0,-96,0,-98,0,-92,0,-89,0,-84,0,-87,0,-74,0,-82,0,-68,0,-74,0,-63,0,-68,0,-57,0,-61,0,-53,0,-53,0,-49,0,-46,0,-45,0,-41,0,-39,0,-36,0,-33,0,-32,0,-28,0,-28,0,-22,0,-22,0,-20,0,-16,0,-18,0,-10,0,-13,0,-7,0,-9,0,-4,0,-5,0,0,1,-1,0,2,1,3,1,5,1,6,1,8,1,9,1,10,1,13,1,11,1,16,1,13,1,18,1,15,1,21,1,17,1,21,1,19,1,23,1,20,1,26,1,19,1,28,1,20,1,28,1,22,1,26,1,25,1,25,1,26,1,25,1,25,1,26,1,24,1,26,1,23,1,27,1,21,1,26,1,21,1,24,1,20,1,24,1,18,1,21,1,19,1,16,1,21,1,12,1,19,1,10,1,15,1,11,1,11,1,9,1,7,1,7,1,4,1,4,1,2,1,0,1,-2,0,-3,0,-5,0,-8,0,-6,0,-14,0,-10,0,-17,0,-16,0,-18,0,-22,0,-23,0,-25,0,-28,0,-29,0,-34,0,-34,0,-38,0,-38,0,-44,0,-44,0,-48,0,-50,0,-52,0,-58,0,-56,0,-62,0,-64,0,-65,0,-74,0,-69,0,-79,0,-77,0,-81,0,-88,0,-85,0,-95,0,-91,0,-100,0,-98,0,-108,0,-103,0,-115,0,-111,0,-120,0,-118,0,-128,0,-124,0,121,0,123,0,117,0,114,0,112,0,106,0,103,0,101,0,95,0,95,0,86,0,88,0,78,0,81,0,72,0,72,0,65,0,65,0,56,0,58,0,50,0,49,0,44,0,40,0,37,0,33,0,28,0,26,0,20,0,19,0,13,0,10,0,6,0,1,0,-1,-1,-3,-1,-12,-1,-10,-1,-19,-1,-19,-1,-25,-1,-27,-1,-32,-1,-36,-1,-37,-1,-45,-1,-46,-1,-49,-1,-56,-1,-54,-1,-64,-1,-63,-1,-69,-1,-71,-1,-76,-1,-79,-1,-83,-1,-85,-1,-91,-1,-91,-1,-98,-1,-100,-1,-102,-1,-108,-1,-107,-1,-117,-1,-113,-1}; }
	private static byte[] data16(){ return new byte[] {-122,-1,-122,-1,-126,-1,125,-1,125,-1,120,-1,117,-1,114,-1,111,-1,107,-1,108,-1,99,-1,101,-1,97,-1,92,-1,93,-1,85,-1,89,-1,80,-1,82,-1,76,-1,75,-1,73,-1,70,-1,66,-1,67,-1,61,-1,62,-1,57,-1,56,-1,54,-1,52,-1,49,-1,48,-1,44,-1,44,-1,41,-1,40,-1,38,-1,35,-1,35,-1,31,-1,33,-1,27,-1,30,-1,24,-1,26,-1,23,-1,22,-1,21,-1,18,-1,20,-1,15,-1,18,-1,13,-1,15,-1,12,-1,13,-1,10,-1,11,-1,9,-1,9,-1,8,-1,8,-1,6,-1,7,-1,5,-1,7,-1,5,-1,5,-1,4,-1,4,-1,5,-1,4,-1,6,-1,2,-1,5,-1,5,-1,2,-1,9,-1,1,-1,9,-1,2,-1,8,-1,6,-1,7,-1,8,-1,8,-1,8,-1,11,-1,9,-1,12,-1,11,-1,15,-1,12,-1,17,-1,14,-1,18,-1,19,-1,18,-1,21,-1,23,-1,22,-1,26,-1,25,-1,27,-1,30,-1,31,-1,31,-1,36,-1,32,-1,41,-1,37,-1,43,-1,41,-1,45,-1,46,-1,49,-1,51,-1,53,-1,54,-1,58,-1,58,-1,62,-1,63,-1,67,-1,68,-1,70,-1,74,-1,75,-1,78,-1,81,-1,82,-1,86,-1,89,-1,88,-1,97,-1,94,-1,100,-1,101,-1,105,-1,106,-1,112,-1,111,-1,117,-1,119,-1,120,-1,126,-1,127,-1,-126,-1,-121,-1,-120,-1,-117,-1,-111,-1,-112,-1,-106,-1,-103,-1,-102,-1,-96,-1,-95,-1,-91,-1,-87,-1,-86,-1,-79,-1,-80,-1,-73,-1,-72,-1,-68,-1,-63,-1,-64,-1,-55,-1,-57,-1,-49,-1,-49,-1,-45,-1,-41,-1,-37,-1,-36,-1,-29,-1,-30,-1,-22,-1,-22,-1,-16,-1,-15,-1,-11,-1,-6,-1,-5,-1,1,0,2,0,6,0,11,0,11,0,19,0,18,0,24,0,27,0,29,0,34,0,37,0,39,0,44,0,46,0,50,0,54,0,55,0,60,0,62,0,67,0,68,0,74,0,74,0,79,0,82,0,84,0,88,0,93,0,91,0,99,0,98,0,103,0,107,0,107,0,113,0,113,0,118,0,120,0,123,0,126,0,-128,0,-125,0,-122,0,-120,0,-116,0,-117,0,-109,0,-113,0,-104,0,-106,0,-101,0,-102,0,-95,0,-97,0,-91,0,-91,0,-89,0,-85,0,-86,0,-80,0,-81,0,-77,0,-78,0,-70,0,-77,0,-65,0,-72,0,-65,0,-65,0,-64,0,-60,0,-61,0,-57,0,-58,0,-54,0,-55,0,-52,0,-51,0,-49,0,-49,0,-46,0,-49,0,-41,0,-46,0,-41,0,-42,0,-42,0,-38,0,-39,0,-38,0,-38,0,-36,0,-36,0,-34,0,-35,0,-34,0,-33,0,-35,0,-29,0,-35,0,-29,0,-33,0,-31,0,-32,0,-29,0,-32,0,-30,0,-30,0,-33,0,-28,0,-32,0,-32,0,-29,0,-34,0,-29,0,-35,0,-30,0,-35,0,-33,0,-32,0,-38,0,-31,0,-39,0,-35,0,-38,0,-37,0,-40,0,-39,0,-41,0,-42,0,-42,0,-45,0,-43,0,-48,0,-45,0,-51,0,-47,0,-53,0,-50,0,-55,0,-56,0,-54,0,-61,0,-57,0,-63,0,-61,0,-66,0,-64,0,-71,0,-66,0,-74,0,-70,0,-79,0,-73,0,-82,0,-78,0,-85,0,-84,0,-88,0,-88,0,-91,0,-95,0,-92,0,-102,0,-96,0,-105,0,-103,0,-108,0,-109,0,-110,0,-116,0,-116,0,-119,0,-122,0,-124,0,-126,0,126,0,126,0,120,0,120,0,115,0,114,0,111,0,109,0,104,0,105,0,96,0,99,0,94,0,91,0,90,0,85,0,83,0,80,0,77,0,74,0,72,0,68,0,65,0,63,0,58,0,58,0,52,0,51,0,47,0,45,0,40,0,40,0,34,0,34,0,27,0,30,0,19,0,23,0,16,0,13,0,13,0,6,0,6,0,1,0,0,0,-5,-1,-7,-1,-10,-1,-14,-1,-14,-1,-22,-1,-20,-1,-28,-1,-25,-1,-34,-1,-33,-1,-38,-1,-41,-1,-40,-1,-50,-1,-45,-1,-55,-1,-53,-1,-57,-1,-63,-1,-60,-1,-68,-1,-69,-1,-71,-1,-75,-1,-77,-1,-79,-1,-85,-1,-83,-1,-90,-1,-89,-1,-93,-1,-98,-1,-97,-1,-102,-1,-103,-1,-106,-1,-109,-1,-111,-1,-115,-1,-114,-1,-121,-1,-119,-1,-124,-1,-126,-1,-126,-1,123,-1,126,-1,121,-1,118,-1,120,-1,112,-1,115,-1,110,-1,109,-1,107,-1,105,-1,102,-1,103,-1,97,-1,100,-1,93,-1,97,-1,89,-1,93,-1,87,-1,89,-1,84,-1,86,-1,80,-1,84,-1,77,-1,81,-1,74,-1,79,-1,71,-1,76,-1,71,-1,70,-1,71,-1,66,-1,70,-1,66,-1,65,-1,65,-1,62,-1,64,-1,62,-1,62,-1,59,-1,61,-1,58,-1,60,-1,57,-1,58,-1,56,-1,57,-1,57,-1,54,-1,58,-1,52,-1,57,-1,54,-1}; }
	private static byte[] data17(){ return new byte[] {54,-1,56,-1,53,-1,54,-1,56,-1,52,-1,56,-1,54,-1,55,-1,55,-1,55,-1,55,-1,57,-1,54,-1,60,-1,54,-1,60,-1,56,-1,60,-1,58,-1,62,-1,58,-1,63,-1,62,-1,63,-1,63,-1,65,-1,66,-1,65,-1,70,-1,66,-1,71,-1,70,-1,72,-1,73,-1,74,-1,75,-1,78,-1,76,-1,82,-1,79,-1,83,-1,84,-1,84,-1,88,-1,88,-1,90,-1,91,-1,93,-1,95,-1,98,-1,96,-1,103,-1,98,-1,108,-1,102,-1,110,-1,109,-1,110,-1,116,-1,112,-1,120,-1,119,-1,120,-1,126,-1,123,-1,-125,-1,-128,-1,-122,-1,-123,-1,-118,-1,-117,-1,-114,-1,-114,-1,-108,-1,-109,-1,-105,-1,-102,-1,-103,-1,-94,-1,-100,-1,-89,-1,-94,-1,-86,-1,-86,-1,-83,-1,-80,-1,-78,-1,-76,-1,-72,-1,-71,-1,-68,-1,-63,-1,-65,-1,-57,-1,-59,-1,-55,-1,-49,-1,-53,-1,-42,-1,-47,-1,-39,-1,-40,-1,-35,-1,-33,-1,-30,-1,-27,-1,-27,-1,-20,-1,-20,-1,-16,-1,-14,-1,-13,-1,-5,-1,-9,-1,0,0,-3,-1,3,0,7,0,4,0,15,0,9,0,19,0,17,0,22,0,23,0,29,0,26,0,35,0,32,0,39,0,40,0,42,0,45,0,47,0,51,0,52,0,56,0,58,0,60,0,63,0,66,0,67,0,72,0,72,0,74,0,80,0,78,0,83,0,86,0,84,0,92,0,91,0,93,0,97,0,98,0,101,0,103,0,105,0,106,0,111,0,109,0,116,0,112,0,121,0,116,0,125,0,119,0,-127,0,124,0,-125,0,-126,0,-124,0,-120,0,-121,0,-119,0,-115,0,-117,0,-111,0,-113,0,-110,0,-108,0,-109,0,-103,0,-107,0,-101,0,-101,0,-103,0,-95,0,-101,0,-94,0,-96,0,-93,0,-95,0,-90,0,-91,0,-91,0,-85,0,-93,0,-82,0,-90,0,-82,0,-86,0,-82,0,-84,0,-81,0,-82,0,-81,0,-79,0,-81,0,-78,0,-79,0,-78,0,-77,0,-79,0,-75,0,-78,0,-75,0,-77,0,-76,0,-75,0,-76,0,-75,0,-76,0,-76,0,-73,0,-79,0,-73,0,-78,0,-74,0,-78,0,-74,0,-80,0,-74,0,-79,0,-78,0,-76,0,-81,0,-78,0,-80,0,-80,0,-81,0,-80,0,-85,0,-81,0,-84,0,-84,0,-85,0,-86,0,-88,0,-87,0,-89,0,-88,0,-93,0,-89,0,-97,0,-90,0,-97,0,-95,0,-98,0,-99,0,-99,0,-103,0,-100,0,-106,0,-103,0,-109,0,-106,0,-111,0,-110,0,-113,0,-115,0,-113,0,-120,0,-117,0,-122,0,-121,0,-125,0,-125,0,-127,0,126,0,126,0,122,0,122,0,119,0,118,0,115,0,114,0,112,0,109,0,108,0,105,0,105,0,101,0,100,0,97,0,95,0,94,0,91,0,88,0,88,0,82,0,85,0,78,0,78,0,76,0,73,0,70,0,71,0,63,0,68,0,59,0,61,0,55,0,56,0,52,0,50,0,48,0,44,0,43,0,41,0,37,0,36,0,32,0,32,0,28,0,25,0,25,0,19,0,20,0,15,0,14,0,12,0,7,0,9,0,0,0,5,0,-3,-1,-2,-1,-7,-1,-8,-1,-10,-1,-13,-1,-16,-1,-17,-1,-22,-1,-20,-1,-29,-1,-23,-1,-34,-1,-29,-1,-36,-1,-37,-1,-37,-1,-45,-1,-40,-1,-49,-1,-47,-1,-50,-1,-55,-1,-53,-1,-59,-1,-60,-1,-60,-1,-66,-1,-65,-1,-70,-1,-68,-1,-75,-1,-72,-1,-79,-1,-78,-1,-81,-1,-83,-1,-85,-1,-87,-1,-89,-1,-91,-1,-93,-1,-95,-1,-96,-1,-101,-1,-98,-1,-104,-1,-103,-1,-107,-1,-106,-1,-112,-1,-109,-1,-114,-1,-114,-1,-116,-1,-118,-1,-119,-1,-122,-1,-121,-1,-125,-1,-125,-1,-127,-1,-128,-1,124,-1,-127,-1,118,-1,-128,-1,116,-1,122,-1,118,-1,116,-1,118,-1,112,-1,117,-1,109,-1,115,-1,107,-1,113,-1,105,-1,111,-1,103,-1,110,-1,101,-1,107,-1,102,-1,102,-1,104,-1,99,-1,102,-1,101,-1,97,-1,101,-1,96,-1,100,-1,97,-1,97,-1,95,-1,99,-1,93,-1,98,-1,94,-1,95,-1,96,-1,94,-1,95,-1,94,-1,95,-1,93,-1,97,-1,92,-1,96,-1,95,-1,92,-1,99,-1,91,-1,99,-1,93,-1,99,-1,93,-1,99,-1,96,-1,97,-1,100,-1,97,-1,99,-1,100,-1,98,-1,104,-1,98,-1,105,-1,100,-1,105,-1,104,-1,104,-1,108,-1,104,-1,109,-1,109,-1,108,-1,112,-1,110,-1,113,-1,114,-1,114,-1,116,-1,116,-1,120,-1,117,-1,122,-1,121,-1,122,-1,126,-1,124,-1,-128,-1,-128,-1,-128,-1,-121,-1,-127,-1,-120,-1,-121,-1,-120,-1,-115,-1,-117,-1,-114,-1,-113,-1,-111,-1,-109,-1,-108,-1,-106,-1,-104,-1,-103,-1,-101,-1,-98,-1,-99,-1,-93,-1}; }
	private static byte[] data18(){ return new byte[] {-95,-1,-93,-1,-87,-1,-92,-1,-82,-1,-87,-1,-82,-1,-80,-1,-79,-1,-75,-1,-77,-1,-69,-1,-75,-1,-64,-1,-70,-1,-62,-1,-64,-1,-59,-1,-61,-1,-53,-1,-58,-1,-48,-1,-54,-1,-44,-1,-49,-1,-42,-1,-41,-1,-41,-1,-35,-1,-37,-1,-32,-1,-30,-1,-29,-1,-28,-1,-23,-1,-23,-1,-18,-1,-19,-1,-16,-1,-12,-1,-13,-1,-6,-1,-10,-1,-2,-1,-4,-1,0,0,2,0,5,0,5,0,9,0,10,0,12,0,17,0,15,0,21,0,20,0,24,0,26,0,27,0,30,0,33,0,32,0,39,0,36,0,41,0,42,0,45,0,45,0,50,0,50,0,52,0,56,0,54,0,61,0,58,0,65,0,61,0,67,0,69,0,67,0,75,0,70,0,77,0,77,0,78,0,82,0,81,0,85,0,86,0,87,0,89,0,92,0,91,0,95,0,95,0,97,0,100,0,99,0,103,0,101,0,107,0,105,0,108,0,109,0,109,0,113,0,112,0,115,0,115,0,116,0,120,0,118,0,120,0,123,0,121,0,125,0,125,0,125,0,-128,0,126,0,-125,0,-128,0,-124,0,-125,0,-124,0,-122,0,-123,0,-120,0,-122,0,-118,0,-120,0,-118,0,-118,0,-117,0,-117,0,-116,0,-115,0,-116,0,-114,0,-115,0,-113,0,-114,0,-113,0,-112,0,-115,0,-109,0,-115,0,-110,0,-113,0,-111,0,-112,0,-111,0,-111,0,-113,0,-109,0,-114,0,-109,0,-113,0,-111,0,-112,0,-113,0,-111,0,-114,0,-111,0,-115,0,-112,0,-116,0,-112,0,-116,0,-115,0,-115,0,-118,0,-114,0,-119,0,-118,0,-117,0,-121,0,-118,0,-122,0,-120,0,-124,0,-119,0,-128,0,-121,0,-127,0,-126,0,-126,0,126,0,-127,0,125,0,125,0,125,0,121,0,124,0,119,0,121,0,117,0,119,0,115,0,116,0,112,0,113,0,111,0,110,0,110,0,104,0,108,0,102,0,106,0,100,0,101,0,97,0,99,0,93,0,99,0,87,0,96,0,85,0,91,0,84,0,87,0,81,0,83,0,78,0,79,0,76,0,75,0,74,0,69,0,70,0,67,0,68,0,61,0,67,0,54,0,65,0,52,0,57,0,54,0,50,0,51,0,46,0,45,0,46,0,40,0,41,0,38,0,35,0,35,0,32,0,30,0,29,0,26,0,25,0,23,0,19,0,21,0,15,0,16,0,13,0,10,0,10,0,6,0,6,0,3,0,0,0,0,0,-2,-1,-6,-1,-5,-1,-9,-1,-12,-1,-10,-1,-16,-1,-16,-1,-17,-1,-22,-1,-20,-1,-26,-1,-24,-1,-30,-1,-27,-1,-33,-1,-32,-1,-35,-1,-38,-1,-38,-1,-42,-1,-40,-1,-47,-1,-43,-1,-51,-1,-46,-1,-55,-1,-50,-1,-58,-1,-53,-1,-61,-1,-57,-1,-63,-1,-64,-1,-62,-1,-71,-1,-63,-1,-74,-1,-68,-1,-75,-1,-73,-1,-77,-1,-78,-1,-78,-1,-81,-1,-82,-1,-82,-1,-87,-1,-85,-1,-88,-1,-90,-1,-89,-1,-92,-1,-93,-1,-96,-1,-94,-1,-98,-1,-98,-1,-99,-1,-101,-1,-101,-1,-104,-1,-103,-1,-106,-1,-105,-1,-108,-1,-108,-1,-110,-1,-109,-1,-112,-1,-112,-1,-114,-1,-112,-1,-117,-1,-113,-1,-120,-1,-114,-1,-120,-1,-118,-1,-119,-1,-123,-1,-118,-1,-123,-1,-121,-1,-125,-1,-122,-1,-124,-1,-125,-1,-124,-1,-127,-1,-125,-1,-125,-1,-128,-1,-127,-1,-127,-1,-128,-1,-127,-1,126,-1,-127,-1,127,-1,126,-1,-127,-1,125,-1,127,-1,-128,-1,125,-1,127,-1,127,-1,126,-1,127,-1,127,-1,126,-1,-128,-1,126,-1,-128,-1,127,-1,-127,-1,127,-1,-127,-1,-128,-1,-127,-1,-126,-1,-127,-1,-125,-1,-126,-1,-125,-1,-124,-1,-124,-1,-124,-1,-122,-1,-123,-1,-121,-1,-121,-1,-120,-1,-120,-1,-120,-1,-116,-1,-119,-1,-116,-1,-116,-1,-115,-1,-114,-1,-113,-1,-113,-1,-112,-1,-109,-1,-112,-1,-106,-1,-109,-1,-107,-1,-104,-1,-106,-1,-104,-1,-99,-1,-105,-1,-97,-1,-100,-1,-99,-1,-93,-1,-99,-1,-91,-1,-95,-1,-90,-1,-91,-1,-88,-1,-88,-1,-87,-1,-85,-1,-82,-1,-84,-1,-79,-1,-81,-1,-77,-1,-76,-1,-76,-1,-72,-1,-74,-1,-69,-1,-70,-1,-67,-1,-65,-1,-67,-1,-60,-1,-63,-1,-60,-1,-57,-1,-58,-1,-53,-1,-55,-1,-50,-1,-52,-1,-47,-1,-48,-1,-44,-1,-44,-1,-41,-1,-41,-1,-38,-1,-36,-1,-36,-1,-32,-1,-33,-1,-28,-1,-29,-1,-26,-1,-25,-1,-23,-1,-20,-1,-21,-1,-16,-1,-18,-1,-13,-1,-12,-1,-12,-1,-7,-1,-10,-1,-2,-1,-7,-1,1,0,-3,-1,3,0,3,0,6,0,5,0,10,0,8,0,14,0,12,0,18,0,13,0,24,0,15,0,27,0,21,0,27,0,27,0,29,0,29,0,36,0,29,0,40,0,34,0,40,0,40,0,43,0}; }
	private static byte[] data19(){ return new byte[] {41,0,48,0,45,0,49,0,50,0,51,0,51,0,58,0,52,0,60,0,58,0,60,0,62,0,64,0,62,0,69,0,65,0,70,0,71,0,69,0,74,0,74,0,74,0,79,0,76,0,80,0,79,0,84,0,80,0,87,0,81,0,90,0,85,0,89,0,90,0,89,0,92,0,95,0,89,0,99,0,92,0,98,0,98,0,96,0,102,0,97,0,104,0,98,0,106,0,100,0,107,0,102,0,107,0,106,0,106,0,108,0,108,0,107,0,112,0,107,0,112,0,110,0,111,0,112,0,112,0,113,0,112,0,114,0,113,0,114,0,115,0,113,0,115,0,116,0,114,0,115,0,116,0,114,0,118,0,114,0,117,0,114,0,117,0,116,0,115,0,117,0,114,0,117,0,115,0,114,0,117,0,112,0,118,0,112,0,115,0,114,0,113,0,113,0,114,0,110,0,114,0,111,0,111,0,111,0,109,0,110,0,110,0,107,0,111,0,103,0,111,0,103,0,107,0,105,0,103,0,105,0,100,0,105,0,97,0,103,0,98,0,99,0,98,0,96,0,96,0,95,0,95,0,92,0,92,0,92,0,88,0,92,0,86,0,87,0,86,0,85,0,82,0,86,0,77,0,84,0,76,0,80,0,76,0,75,0,74,0,74,0,69,0,74,0,65,0,72,0,63,0,68,0,61,0,65,0,59,0,61,0,59,0,55,0,57,0,54,0,51,0,54,0,48,0,49,0,47,0,46,0,43,0,44,0,41,0,39,0,38,0,38,0,33,0,35,0,32,0,29,0,31,0,27,0,24,0,27,0,20,0,23,0,20,0,18,0,16,0,16,0,11,0,15,0,8,0,11,0,5,0,7,0,3,0,3,0,1,0,-1,-1,-2,-1,-4,-1,-5,-1,-7,-1,-7,-1,-13,-1,-8,-1,-16,-1,-12,-1,-18,-1,-16,-1,-21,-1,-18,-1,-25,-1,-21,-1,-27,-1,-26,-1,-28,-1,-29,-1,-33,-1,-30,-1,-36,-1,-34,-1,-37,-1,-39,-1,-39,-1,-42,-1,-41,-1,-45,-1,-44,-1,-48,-1,-48,-1,-48,-1,-52,-1,-51,-1,-53,-1,-56,-1,-55,-1,-57,-1,-59,-1,-59,-1,-60,-1,-64,-1,-63,-1,-63,-1,-68,-1,-64,-1,-70,-1,-69,-1,-69,-1,-73,-1,-71,-1,-74,-1,-75,-1,-75,-1,-77,-1,-77,-1,-79,-1,-79,-1,-83,-1,-77,-1,-87,-1,-79,-1,-87,-1,-85,-1,-84,-1,-89,-1,-85,-1,-91,-1,-86,-1,-93,-1,-88,-1,-93,-1,-91,-1,-93,-1,-94,-1,-93,-1,-95,-1,-94,-1,-98,-1,-95,-1,-98,-1,-96,-1,-99,-1,-97,-1,-100,-1,-99,-1,-100,-1,-100,-1,-100,-1,-101,-1,-102,-1,-100,-1,-104,-1,-99,-1,-105,-1,-102,-1,-101,-1,-106,-1,-99,-1,-107,-1,-101,-1,-105,-1,-102,-1,-105,-1,-102,-1,-106,-1,-100,-1,-108,-1,-100,-1,-105,-1,-104,-1,-101,-1,-107,-1,-100,-1,-103,-1,-105,-1,-99,-1,-107,-1,-97,-1,-106,-1,-97,-1,-106,-1,-96,-1,-105,-1,-97,-1,-100,-1,-100,-1,-98,-1,-100,-1,-96,-1,-99,-1,-95,-1,-98,-1,-96,-1,-94,-1,-96,-1,-93,-1,-94,-1,-92,-1,-94,-1,-88,-1,-95,-1,-86,-1,-92,-1,-87,-1,-88,-1,-88,-1,-85,-1,-87,-1,-82,-1,-87,-1,-79,-1,-87,-1,-76,-1,-84,-1,-76,-1,-80,-1,-77,-1,-77,-1,-73,-1,-77,-1,-71,-1,-74,-1,-71,-1,-69,-1,-71,-1,-67,-1,-68,-1,-64,-1,-67,-1,-62,-1,-64,-1,-60,-1,-60,-1,-59,-1,-58,-1,-57,-1,-54,-1,-56,-1,-50,-1,-55,-1,-47,-1,-52,-1,-46,-1,-48,-1,-44,-1,-45,-1,-42,-1,-41,-1,-42,-1,-36,-1,-40,-1,-34,-1,-36,-1,-33,-1,-32,-1,-31,-1,-29,-1,-28,-1,-27,-1,-25,-1,-24,-1,-22,-1,-22,-1,-19,-1,-20,-1,-15,-1,-17,-1,-13,-1,-14,-1,-11,-1,-10,-1,-8,-1,-8,-1,-4,-1,-6,-1,-2,-1,-2,-1,-1,-1,3,0,1,0,6,0,3,0,8,0,8,0,8,0,14,0,10,0,14,0,17,0,13,0,21,0,17,0,22,0,21,0,23,0,25,0,25,0,28,0,28,0,30,0,30,0,34,0,32,0,36,0,36,0,37,0,40,0,38,0,42,0,42,0,44,0,44,0,47,0,45,0,50,0,48,0,52,0,51,0,53,0,53,0,57,0,54,0,59,0,57,0,59,0,62,0,59,0,65,0,61,0,66,0,64,0,67,0,66,0,70,0,67,0,72,0,68,0,75,0,68,0,78,0,70,0,79,0,72,0,79,0,75,0,79,0,80,0,77,0,82,0,80,0,81,0,83,0,82,0,84,0,83,0,85,0,85,0,85,0,88,0,83,0,90,0,86,0,89,0,87,0,89,0,90,0,88,0,92,0,87,0,93,0,89,0,92,0,90,0,93,0}; }
	private static byte[] data20(){ return new byte[] {90,0,94,0,89,0,96,0,89,0,94,0,93,0,91,0,95,0,90,0,96,0,89,0,97,0,89,0,95,0,92,0,92,0,93,0,93,0,91,0,92,0,93,0,89,0,95,0,88,0,92,0,91,0,90,0,90,0,90,0,88,0,91,0,88,0,88,0,88,0,86,0,89,0,86,0,85,0,87,0,83,0,87,0,82,0,84,0,82,0,83,0,82,0,79,0,83,0,76,0,82,0,76,0,79,0,76,0,76,0,76,0,73,0,75,0,73,0,71,0,73,0,68,0,72,0,67,0,69,0,66,0,67,0,65,0,64,0,63,0,63,0,60,0,62,0,58,0,60,0,55,0,59,0,53,0,56,0,53,0,51,0,53,0,48,0,51,0,46,0,49,0,43,0,47,0,41,0,44,0,40,0,41,0,37,0,40,0,34,0,37,0,34,0,32,0,33,0,29,0,30,0,29,0,26,0,27,0,22,0,25,0,21,0,22,0,18,0,20,0,15,0,17,0,15,0,11,0,15,0,9,0,11,0,7,0,7,0,7,0,3,0,5,0,0,0,2,0,-1,-1,-1,-1,-4,-1,-4,-1,-4,-1,-10,-1,-4,-1,-12,-1,-10,-1,-10,-1,-15,-1,-12,-1,-17,-1,-16,-1,-17,-1,-19,-1,-21,-1,-20,-1,-25,-1,-19,-1,-30,-1,-23,-1,-29,-1,-27,-1,-30,-1,-30,-1,-33,-1,-33,-1,-32,-1,-38,-1,-32,-1,-42,-1,-34,-1,-43,-1,-39,-1,-41,-1,-44,-1,-42,-1,-46,-1,-46,-1,-46,-1,-48,-1,-49,-1,-49,-1,-51,-1,-52,-1,-52,-1,-54,-1,-55,-1,-53,-1,-60,-1,-52,-1,-63,-1,-56,-1,-60,-1,-63,-1,-57,-1,-67,-1,-59,-1,-66,-1,-64,-1,-65,-1,-66,-1,-67,-1,-67,-1,-69,-1,-68,-1,-70,-1,-69,-1,-72,-1,-70,-1,-74,-1,-70,-1,-76,-1,-70,-1,-79,-1,-70,-1,-78,-1,-75,-1,-76,-1,-78,-1,-77,-1,-76,-1,-80,-1,-77,-1,-80,-1,-78,-1,-81,-1,-78,-1,-82,-1,-79,-1,-81,-1,-82,-1,-79,-1,-86,-1,-76,-1,-87,-1,-78,-1,-85,-1,-82,-1,-82,-1,-83,-1,-82,-1,-84,-1,-82,-1,-84,-1,-82,-1,-83,-1,-84,-1,-82,-1,-83,-1,-85,-1,-79,-1,-87,-1,-78,-1,-87,-1,-80,-1,-83,-1,-82,-1,-82,-1,-80,-1,-84,-1,-79,-1,-82,-1,-82,-1,-78,-1,-82,-1,-79,-1,-79,-1,-81,-1,-76,-1,-82,-1,-74,-1,-82,-1,-73,-1,-81,-1,-72,-1,-79,-1,-74,-1,-74,-1,-77,-1,-71,-1,-75,-1,-71,-1,-74,-1,-70,-1,-72,-1,-70,-1,-69,-1,-71,-1,-66,-1,-70,-1,-65,-1,-68,-1,-65,-1,-64,-1,-66,-1,-62,-1,-63,-1,-62,-1,-61,-1,-60,-1,-61,-1,-56,-1,-61,-1,-55,-1,-57,-1,-55,-1,-55,-1,-52,-1,-56,-1,-48,-1,-54,-1,-48,-1,-50,-1,-48,-1,-47,-1,-47,-1,-44,-1,-45,-1,-43,-1,-43,-1,-41,-1,-41,-1,-37,-1,-41,-1,-35,-1,-38,-1,-34,-1,-35,-1,-32,-1,-33,-1,-31,-1,-29,-1,-31,-1,-26,-1,-28,-1,-24,-1,-27,-1,-22,-1,-23,-1,-21,-1,-20,-1,-20,-1,-17,-1,-18,-1,-15,-1,-15,-1,-14,-1,-12,-1,-12,-1,-10,-1,-8,-1,-10,-1,-5,-1,-7,-1,-4,-1,-3,-1,-3,-1,-1,-1,1,0,-1,-1,3,0,3,0,4,0,7,0,5,0,9,0,6,0,13,0,9,0,13,0,14,0,12,0,18,0,14,0,19,0,17,0,21,0,21,0,19,0,26,0,20,0,29,0,23,0,29,0,26,0,31,0,27,0,34,0,31,0,32,0,35,0,33,0,38,0,35,0,40,0,35,0,43,0,39,0,41,0,44,0,41,0,47,0,42,0,49,0,43,0,51,0,45,0,52,0,48,0,52,0,51,0,52,0,54,0,52,0,57,0,54,0,56,0,57,0,56,0,61,0,56,0,62,0,57,0,62,0,62,0,61,0,63,0,63,0,62,0,68,0,60,0,69,0,63,0,68,0,66,0,67,0,68,0,68,0,68,0,69,0,69,0,70,0,71,0,69,0,71,0,71,0,72,0,71,0,72,0,72,0,72,0,75,0,70,0,75,0,71,0,76,0,72,0,74,0,75,0,71,0,78,0,70,0,77,0,73,0,74,0,75,0,73,0,77,0,70,0,79,0,70,0,77,0,72,0,76,0,72,0,76,0,71,0,75,0,72,0,74,0,73,0,71,0,75,0,68,0,77,0,67,0,75,0,68,0,72,0,71,0,69,0,70,0,70,0,67,0,71,0,66,0,68,0,69,0,63,0,70,0,63,0,67,0,64,0,65,0,62,0,66,0,59,0,65,0,60,0,62,0,59,0,60,0,60,0,57,0,60,0,55,0,56,0,58,0,53,0,56,0,54,0,51,0,54,0,50,0,52,0,49,0}; }
	private static byte[] data21(){ return new byte[] {51,0,45,0,51,0,44,0,48,0,44,0,45,0,43,0,43,0,41,0,42,0,40,0,39,0,39,0,36,0,37,0,37,0,33,0,35,0,33,0,31,0,32,0,29,0,31,0,26,0,31,0,22,0,29,0,22,0,25,0,22,0,22,0,19,0,21,0,18,0,17,0,19,0,11,0,19,0,11,0,14,0,12,0,8,0,13,0,6,0,10,0,5,0,5,0,7,0,1,0,5,0,0,0,0,0,2,0,-4,-1,0,0,-5,-1,-4,-1,-4,-1,-8,-1,-7,-1,-8,-1,-10,-1,-10,-1,-11,-1,-13,-1,-13,-1,-14,-1,-16,-1,-15,-1,-18,-1,-17,-1,-19,-1,-21,-1,-20,-1,-22,-1,-23,-1,-22,-1,-27,-1,-23,-1,-29,-1,-25,-1,-30,-1,-28,-1,-29,-1,-33,-1,-29,-1,-36,-1,-30,-1,-36,-1,-34,-1,-37,-1,-36,-1,-38,-1,-37,-1,-41,-1,-38,-1,-42,-1,-41,-1,-42,-1,-42,-1,-46,-1,-41,-1,-48,-1,-45,-1,-46,-1,-47,-1,-48,-1,-48,-1,-50,-1,-50,-1,-50,-1,-51,-1,-51,-1,-53,-1,-52,-1,-54,-1,-55,-1,-53,-1,-55,-1,-57,-1,-55,-1,-58,-1,-56,-1,-57,-1,-59,-1,-59,-1,-59,-1,-59,-1,-60,-1,-60,-1,-60,-1,-64,-1,-57,-1,-67,-1,-58,-1,-65,-1,-61,-1,-64,-1,-64,-1,-63,-1,-65,-1,-62,-1,-66,-1,-65,-1,-63,-1,-69,-1,-60,-1,-70,-1,-63,-1,-67,-1,-65,-1,-67,-1,-65,-1,-67,-1,-66,-1,-66,-1,-67,-1,-66,-1,-67,-1,-65,-1,-69,-1,-64,-1,-69,-1,-64,-1,-69,-1,-64,-1,-68,-1,-64,-1,-68,-1,-65,-1,-66,-1,-65,-1,-66,-1,-64,-1,-67,-1,-63,-1,-66,-1,-63,-1,-66,-1,-61,-1,-67,-1,-61,-1,-64,-1,-64,-1,-59,-1,-66,-1,-58,-1,-65,-1,-58,-1,-63,-1,-59,-1,-60,-1,-61,-1,-57,-1,-59,-1,-60,-1,-55,-1,-60,-1,-55,-1,-57,-1,-55,-1,-56,-1,-55,-1,-54,-1,-53,-1,-55,-1,-49,-1,-57,-1,-47,-1,-54,-1,-48,-1,-51,-1,-48,-1,-49,-1,-47,-1,-47,-1,-47,-1,-45,-1,-45,-1,-45,-1,-43,-1,-43,-1,-43,-1,-39,-1,-45,-1,-36,-1,-42,-1,-38,-1,-35,-1,-42,-1,-31,-1,-41,-1,-30,-1,-37,-1,-31,-1,-34,-1,-31,-1,-30,-1,-31,-1,-28,-1,-29,-1,-27,-1,-26,-1,-27,-1,-24,-1,-24,-1,-24,-1,-21,-1,-22,-1,-17,-1,-19,-1,-13,-1,-14,-1,-12,-1,-10,-1,-11,-1,-6,-1,-8,-1,-4,-1,-7,-1,-2,-1,-4,-1,-2,-1,-1,-1,-3,-1,2,0,-3,-1}; }
	private static byte[] getData(){
		byte[] data = new byte[22040];
		System.arraycopy(data0(), 0, data, 0, 1024);
		System.arraycopy(data1(), 0, data, 1024, 1024);
		System.arraycopy(data2(), 0, data, 2048, 1024);
		System.arraycopy(data3(), 0, data, 3072, 1024);
		System.arraycopy(data4(), 0, data, 4096, 1024);
		System.arraycopy(data5(), 0, data, 5120, 1024);
		System.arraycopy(data6(), 0, data, 6144, 1024);
		System.arraycopy(data7(), 0, data, 7168, 1024);
		System.arraycopy(data8(), 0, data, 8192, 1024);
		System.arraycopy(data9(), 0, data, 9216, 1024);
		System.arraycopy(data10(), 0, data, 10240, 1024);
		System.arraycopy(data11(), 0, data, 11264, 1024);
		System.arraycopy(data12(), 0, data, 12288, 1024);
		System.arraycopy(data13(), 0, data, 13312, 1024);
		System.arraycopy(data14(), 0, data, 14336, 1024);
		System.arraycopy(data15(), 0, data, 15360, 1024);
		System.arraycopy(data16(), 0, data, 16384, 1024);
		System.arraycopy(data17(), 0, data, 17408, 1024);
		System.arraycopy(data18(), 0, data, 18432, 1024);
		System.arraycopy(data19(), 0, data, 19456, 1024);
		System.arraycopy(data20(), 0, data, 20480, 1024);
		System.arraycopy(data21(), 0, data, 21504, 536);
		return data;
	}
	/** Constructs a new AudioClip with the data from drum-01.wav. */
	public Drum01(){
		data = getData();
		format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, (float)(44100.0), 16, 1, 2, (float)(44100.0), false);
		lineInfo = new DataLine.Info(SourceDataLine.class, format, AudioSystem.NOT_SPECIFIED);
		try{ AudioSystem.getLine(lineInfo); }
		catch(IllegalArgumentException ex){ lineInfo = null; ex.printStackTrace(); }
		catch(LineUnavailableException e){}
	}
	/** A separate thread for playing drum-01.wav. */
	private class PlayThread extends Thread {
		private byte[] data;
		private AudioFormat format;
		private DataLine.Info lineInfo;
		private SourceDataLine line = null;
		private boolean playing = true;
		private float volume = 1;
		public PlayThread(byte[] d, AudioFormat f, DataLine.Info i, float v){ data = d; format = f; lineInfo = i; volume = v; }
		public void run(){
			try{
				line = (SourceDataLine) AudioSystem.getLine(lineInfo);
				line.open(format, AudioSystem.NOT_SPECIFIED);
				FloatControl vol = (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);
				vol.setValue(volume);
				line.start();
				int written = 0;
				int available;
				while(written < data.length && playing){
					available = Math.min(line.available(), data.length - written);
					line.write(data, written, available);
					written += available;
				}
				int frames = data.length / format.getFrameSize();
				while(line.getFramePosition() < frames && playing) Thread.sleep(0);
			}
			catch(InterruptedException ex){ playing = false; }
			catch(LineUnavailableException ex){}
			if(line != null){ line.stop(); line.flush(); line.close(); }
			playing = false;
		}
		public void interrupt(){ playing = false; }
		public boolean isPlaying(){ return playing; }
	}
	/** A separate thread for looping play of drum-01.wav. */
	private class LoopThread extends Thread {
		private Drum01 clip;
		private boolean looping = true;
		public LoopThread(Drum01 c){ clip = c; }
		public void run(){
			while(looping){
				clip.play();
				while(clip.isPlaying() && looping){
					try{ Thread.sleep(0); }
					catch(InterruptedException ex){ looping = false; break; }
				}
			}
			if(!clip.isLooping()) clip.stop();
		}
		public void interrupt(){ looping = false; }
		public boolean isLooping(){ return looping; }
	}
	/** Plays drum-01.wav from the beginning, even if it is already playing or looping. */
	public void play() { play(0); }
	public void play(float balance){ if(lineInfo == null) return; doPlay(balance); }
	private synchronized void doPlay(float balance){
		doStopPlay();
		playThread = new PlayThread(data, format, lineInfo, balance);
		playThread.start();
	}
	/** Plays drum-01.wav continuously until stopped. */
	public void loop(){ if(lineInfo == null) return; doLoop(); }
	private synchronized void doLoop(){
		doStopLoop();
		loopThread = new LoopThread(this);
		loopThread.start();
	}
	/** Stops play and looping of drum-01.wav. */
	public void stop(){ if(lineInfo == null) return; doStop(); }
	private synchronized void doStop(){
		doStopPlay();
		doStopLoop();
	}
	private void doStopPlay(){
		if(playThread == null) return;
		if(playThread.isPlaying()) playThread.interrupt();
		playThread = null;
	}
	private void doStopLoop(){
		if(loopThread == null) return;
		if(loopThread.isLooping()) loopThread.interrupt();
		loopThread = null;
	}
	/** Tests if drum-01.wav is currently playing or looping.
	 * @return <tt>true</tt> if playing or looping, <tt>false</tt> otherwise */
	public boolean isPlaying(){ if(lineInfo == null) return false; return doIsPlaying(); }
	private synchronized boolean doIsPlaying(){
		if(loopThread == null && playThread == null) return false;
		else if(loopThread == null) return playThread.isPlaying();
		else if(playThread == null) return loopThread.isLooping();
		else return loopThread.isLooping() && playThread.isPlaying();
	}
	/** Tests if drum-01.wav is currently looping.
	 * @return <tt>true</tt> if looping, <tt>false</tt> otherwise */
	public boolean isLooping(){ if(lineInfo == null) return false; return doIsLooping(); }
	private synchronized boolean doIsLooping(){
		if(loopThread == null) return false;
		else return loopThread.isLooping();
	}
}